Table of Contents |
---|
AgnosTVR
See Agnos TVR Bitmap page.
Card Emulation (using AVT, for CL only)
In some debugging situations, it may be useful to be able to replay an EMV transaction without having the corresponding card. Replaying a transaction requires a specific GPI/DEVICE implementation. Make sure that your AVT uses that specific a GPI/DEVICE_REPLAY library having the exact same interface version as GPI/DEVICE_PCSC
Procedure to replay a transaction from ACE:
Code Block |
---|
a) From ACE, run a transaction with an actual device. Enable all traces, including APDU log
b) From ACE, do an export
c) Unzip the export file, and spot the signal file (signals.txt)
d) In the AVT running directory, copy the signals.txt file, and rename it starting with "CL-" (example: "CL-replay"):
c) From the AVT/agnos.ini file:
- Set Replay = yes; (or set that specific mode from TMS/Administrative dialog: **Replay**).
- Set ReaderCL = name_of_the_file_containing_APDU; Starting with ''CL-''
- Set CL=yes
d) From ACE, load the following files exported from ACE in b). This will restore the exact same pre-conditions to run the test case:
- TRD
- TERMINAL
- PROCESSING
- ENTRY POINT
e) From ACE/Configuration/ENTRY POINT:
- Open the contactless combination that will be replayed
- Or, do step f) for all available combinations
f) In Other TLVs section within an ENTRY POINT combination configuration, set 9F3704xxxxxxxx with xxxxxxxx set to the value corresponding to the transaction to be replayed
g) Run the transaction |
Trouble shooting:
When replaying CL transactions unsing the AVT, make sure that DOLs are in sync with the APDU traces fetched from the actual transaction execution. GPO, GenAC are - most of the time - the root of dysfunctional replays.
Kernel Processing States
...
...
Kernel Processing States
As per the implementation pattern, each Agnos CL kernel is ruled by a state machine. The following tables present all states related to each CL kernel,
EMVCO Contact
This kernel is ruled by the following state machine:
Kernel Processing States | ||
---|---|---|
State | Value | Definition |
asREADY | 0 | EMV initialization |
asSELECT | 10 | The terminal must select the application on the card ( INS 'A4') |
asGPO | 20 | Get Processing Options command initiates the transaction within the ICC. |
asRRD | 30 | Relay Resistance Data. It’s a specific requirement for Mastercard |
asREAD | 40 | Read all records from ICC ( INS 'B2') |
asRESTRICTION | 70 | Processing restrictions allow the terminal to determine the compatibility of the applications on the card and terminal. |
asODA | 80 | The terminal should perform offline data authentication. Depending on the capabilities of the card and the terminal, SDA or DDA or CDA is performed. |
asCVM | 90 | Cardholder verification is performed to ensure that the person presenting the ICC is the person to whom the application in the card was issued. |
asTRM | 100 | Terminal risk management is that portion of risk management performed by the terminal to protect the acquirer, issuer, and system from fraud. |
asTAA | 110 | Once terminal risk management and application functions related to a normal offline transaction have been completed, the terminal makes the first decision as to whether the transaction should be approved offline(TC), declined offline(AAC)., or transmitted online (ARQC). |
asGENAC1 | 120 | The GENERATE AC command sends transaction-related data to the ICC, which computes and returns a cryptogram. ( INS 'AE') |
asCCC | 130 | Compute Cryptographic Checksum ( INS '2A') |
asEXTAUTH | 140 | Issuer authentication was performed bit raised |
asGENAC2 | 150 | The ICC should respond to a second GENERATE AC command with either a TC or an AAC. |
asGETDATA | 160 | The GET DATA command is used to retrieve a primitive data object not encapsulated in a record within the current application. ( INS 'CA') |
asPUTDATA | 170 | Put data to card ( INS 'DA') |
C-2/Mastercard
This kernel is ruled by the following state machine:
Kernel Processing States | ||
---|---|---|
State | Value | Definition |
psNone | 0 | Init |
psState1 | 1 | Idle |
psState2 | 2 | Waiting For PDOL Data |
psState3 | 3 | Waiting For GPO Response |
psStateR1 | 4 | Waiting For Exchange Relay Resistance Data Response |
psState3R1 | 5 | States 3, R1, Common Processing |
psState4 | 6 | Waiting For EMV Read Record Response |
psState5 | 7 | Waiting For GET DATA Response |
psState6 | 8 | Waiting For EMV Mode First Write Flag |
psState456 | 9 | States 4, 5, 6 Common Processing |
psState7 | 10 | Waiting For Magstripe Read Record Response |
psState8 | 11 | Waiting For Masgstripe First Write Flag |
psState78 | 12 | States 7, 8, Common Processing |
psState9 | 13 | Waiting For gen AC Response - 1 |
psState10 | 14 | Waiting for Recover Response AC |
psState910 | 15 | States 9, 10 , Common Processing |
psState11 | 16 | Waiting For Gen AC Response -2 |
psState12 | 17 | Waiting For PUT DATA Response Before Gen AC |
psState13 | 18 | Waiting For CCC Response - 1 |
psState14 | 19 | Waiting For CCC Response - 2 |
psState15 | 20 | Waiting For PUT DATA Response After Gen AC |
Extra States from AGF 3.5.x (Exit Conditions) | ||
psState1b | 21 | Continue PDOL Data Processing (Extra State for handling Exit Condition "GET FINAL SELECT FCI" by L3) |
psState3b | 22 | Continue State 3 Common Processing (Extra State for handling Exit Condition "STATUS PROCESSING" by L3) |
psState456b | 23 | Continue State 4, 5 and 6 GenAC Processing (Extra State for handling Exit Condition "APP DATA AVAILABLE" by L3) |
psState78b | 24 | Continue State 7 and 8 GenAC Processing (Extra State for handling Exit Condition "APP DATA AVAILABLE" by L3) |
psState910b | 25 | Continue State 9, 10 Common Processing (Extra State for handling Exit Condition "REMOVE CARD" by L3) |
psState10b | 26 | Continue State 10 Processing (Extra State for handling Exit Condition "APP DATA AVAILABLE" by L3) |
psState12b | 27 | Continue State 12 Processing (Extra State for handling Exit Condition "APP DATA AVAILABLE" by L3) |
psState13b | 28 | Continue State 13 Processing (Extra State for handling Exit Condition "REMOVE CARD" by L3) |
psState14b | 29 | Continue State 14 Processing (Extra State for handling Exit Condition "REMOVE CARD" by L3) |
psState15b | 30 | Continue State 15 Processing (Extra State for handling Exit Condition "REMOVE CARD" by L3) |
C-3/Visa
This kernel is ruled by the following state machine:
Kernel Processing States | ||
---|---|---|
State | Value | Definition |
psNone | 0 | Init |
psState1 | 1 | Idle |
psState2 | 2 | GPO |
psState3 | 3 | Common Processing |
psState4 | 4 | Magstripe |
psState5 | 5 | EMV |
psState6 | 6 | EMV - Perform Restrictions |
psState7 | 7 | EMV - Perform DDA |
psState8 | 8 | EMV - Perform SDA TTIG |
psState9 | 9 | EMV - Perform CVM |
psState10 | 10 | EMV - DDA TTIG when ODA for Online Authorization |
psState11 | 11 | EMV - SDA TTIG when ODA for Online Authorization |
psState12 | 12 | GPO 6985 |
psState13 | 13 | GPO qVSDC-6984 |
psState14 | 14 | GPO qVSDC-6986 |
psState15 | 15 | GPO qVSDC-Other |
psState16 | 16 | Start D |
Extra States from AGF 3.5.x (Exit Conditions) | ||
psState3B | 17 | Resume Execution of Common Processing after returning from Execution of "REMOVE CARD" Exit Condition |
C-4/American Express
This kernel is ruled by the following state machine:
Kernel Processing States | ||
---|---|---|
State | Value | Definition |
psNone | 0 | Init |
psState1 | 1 | Idle |
psState2 | 2 | Waiting For GPO Response |
psState3 | 3 | Common Processing |
psState3b | 4 | CVM Specific - Extracted From State3 |
psState3c | 5 | TRM Specific - Extracted From State3 |
psState6 | 6 | Waiting for Gen AC Response |
psState4 | 7 | Magstripe Start D |
psState5 | 8 | EMV Start D |
Extra States from AGF 3.5.x (Exit Conditions) | ||
psState1b | 9 | Continue State1 Processing (Extra State for handling Exit Condition "GET FINAL SELECT FCI" by L3) |
psState2b | 10 | Continue State2 Processing (Extra State for handling Exit Condition "STATUS PROCESSING" by L3) |
psState3a | 11 | Continue State3 Processing (Extra State for handling Exit Condition "APP DATA AVAILABLE" by L3) |
psState4b | 12 | Continue State4 Processing (Extra State for handling Exit Condition "REMOVE CARD" by L3) |
C-5/JCB
This kernel is ruled by the following state machine:
Kernel Processing States | ||
---|---|---|
State | Value | Definition |
psNone | 0 | Init |
psTransactionInitialisation_a | 1 | – |
psStateRecovery | 2 | – |
psTransactionInitialisation_b | 3 | – |
psStateInitiateApplicationProcessing | 4 | – |
psStateReadApplicationData | 5 | – |
psStateTerminalRiskManagement | 6 | – |
psStateProcessingRestrictions | 7 | – |
psStateTerminalActionAnalysis | 8 | – |
psStateCompletionEMVMode_a | 9 | – |
psStateCompletionEMVMode_b | 10 | – |
psStateCompletionMastripeMode | 11 | – |
psStateCompletionLegacyMode | 12 | – |
psStateIssuerUpdateProcessing | 13 | – |
Extra States from AGF 3.5.x (Exit Conditions) | ||
psTransactionInitialisation_a1 | 14 | Continue Normal Processing of State psTransactionInitialisation_a |
psStateInitiateApplicationProcessing_b | 15 | Continue Normal Processing of State psStateInitiateApplicationProcessing |
psStateCompletionEMVMode_c | 16 | Continue Normal Processing of State psStateCompletionEMVMode_b |
psStateCompletionMagstripeMode_b | 17 | Continue Normal Processing of State psStateCompletionMagstripeMode |
psStateCompletionLegacyMode_b | 18 | Continue Normal Processing of State psStateCompletionLegacyMode |
C-6/Discover
This kernel is ruled by the following state machine:
Kernel Processing States (DPAS) | ||
---|---|---|
State | Value | Definition |
psNone | 0 | Init |
psStateIdle | 1 | – |
psStateInitiateApplication | 2 | – |
psStateChecksForCDA | 3 | – |
psStateReadApplicationData | 4 | – |
psStateOfflineDataAuthentication | 5 | – |
psStateCardholderVerification | 6 | – |
psStateProcessingRestrictions | 7 | – |
psStateTerminalActionAnalysis | 8 | – |
psStateAfterOnlineRequest | 9 | – |
psStateIssuerUpdates | 10 | – |
psFinalOutcome | 11 | – |
Extra States from AGF 3.5.x (Exit Conditions) | ||
psStateIdle_b | 12 | New State for Exit Condition EC_CTLSS_EVENT_GET_FINAL_SELECT_FCI |
psStateInitiateApplication_b | 13 | New State for Exit Condition EC_CTLSS_EVENT_STATUS_PROCESSING |
psStateReadApplicationData_b | 14 | New State for Exit Condition EC_CTLSS_EVENT_REMOVE_CARD |
psStateIssuerUpdates_b | 15 | New State for continuing Issuer Script Updates Processing after REMOVE CARD |
Kernel Processing States (ZIP) | ||
---|---|---|
State | Value | Definition |
psNone | 0 | Init |
psStateIdle | 1 | After Initiate |
psStateInitiateApplication | 2 | Before GPO |
psStateReadApplicationData | 3 | Before Read Application |
psStateCompletion | 4 | Before Tracks Management |
C-7/CUP
This kernel is ruled by the following state machine:
Kernel Processing States | ||
---|---|---|
State | Value | Definition |
psNone | 0 | Init |
psState1 | 1 | Idle |
psState2 | 2 | TTR |
psState3a | 3 | AAC Case |
psState3b | 4 | ARQC Case |
psState3c | 5 | TC Case |
psStateStandardUICSFlow | 6 | Transit Standard Flow |
Gemalto PURE
This kernel is ruled by the following state machine:
Kernel Processing States | ||
---|---|---|
State | Value | Definition |
psNone | 0 | Init |
1 | – | |
2 | – | |
3 | – | |
4 | – | |
5 | – | |
6 | – | |
7 | – | |
8 | – | |
9 | – | |
10 | – |
EFTPOS
This kernel is ruled by the following state machine:
Kernel Processing States | ||
---|---|---|
State | Value | Definition |
psNone | 0 | Init |
psStateIdle | 1 | – |
psStateInitiateApplication | 2 | – |
psStateReadApplicationData | 3 | – |
psStatePreTerminalActionAnalysis | 4 | – |
psStateCardActionAnalysis | 5 | – |
psStateOfflineCAMChecking | 6 | – |
psStateProcessingRestrictions | 7 | – |
psStateCardholderVerification | 8 | – |
psStatePostTerminalActionAnalysis | 9 | – |
psStateAfterOnline | 10 | – |
Interac Flash
This kernel is ruled by the following state machine:
Kernel Processing States | ||
---|---|---|
State | Value | Definition |
psNone | 0 | Init |
psApplicationSelection | 1 | – |
psRetryChecks | 2 | – |
PreInitiation | 3 | – |
psReadApplication | 4 | – |
psODA | 5 | – |
psProcessingRestrictions | 6 | – |
psCVM | 7 | – |
psTRM | 8 | – |
psTAA | 9 | – |
psCompletion | 10 | – |
Idemia WISE
This kernel is ruled by the following state machine:
Kernel Processing States | ||
---|---|---|
State | Value | Definition |
psNone | 0 | Init |
psStateIdle | 1 | – |
psStateInitiateTransactionProcessing | 2 | – |
psStateReadApplicationData | 3 | – |
psStateProcessingRestrictions | 4 | – |
psStateCardholderVerification | 5 | – |
psStateKernelActionAnalysis | 6 | – |
psStateOfflineDataAuthentication | 7 | – |
psStateAfterOnlineProcessing | 8 | Not Supported Yet |
psIssuerScriptProcessing | 9 | Not Supported Yet |
psStateTransactionCompletion | 10 | Not Supported Yet |
Bancomat
This kernel is ruled by the following state machine:
...