AT-NFC 2.1 (win) AT-NFC kernel set

hal_nfc_config.h
Go to the documentation of this file.
1 #ifndef HAL_NFC_CONFIG_H
2 #define HAL_NFC_CONFIG_H
3
4 /* ******************* HAL terminal nfc configuration API declaration ********************** */
8 /* ***************************************************************************************** */
9
10 /* set struct alignment */
11 #include <emv_platform_set_align.h>
12
13 /* ***************************************************************************************** */
20 /* ***************************************************************************************** */
21
22
23 /* *********************** Mask used in hal_cfg_get_nfc_ep_config ************************** */
28 #define KER_CFG_EP_MASK_STATUS_CHECK 0x0001
29 #define KER_CFG_EP_MASK_ZERO_AMOUNT 0x0002
30 #define KER_CFG_EP_MASK_ZERO_AMOUNT_OFFLINE 0x0004
31 #define KER_CFG_EP_MASK_RDR_CLESS_LIMIT 0x0008
32 #define KER_CFG_EP_MASK_RDR_CLESS_FLOOR_LIMIT 0x0010
33 #define KER_CFG_EP_MASK_RDR_CVM_REQ_LIMIT 0x0020
34 #define KER_CFG_EP_MASK_TTQ 0x0040
35 #define KER_CFG_EP_MASK_EXT_SEL_SUPPORT 0x0080
42 #define KER_CFG_EP_PRE_STATUS_CHECK_REQUESTED 0x0001
43 #define KER_CFG_EP_PRE_CLESS_APP_NOT_ALLOWED 0x0002
44 #define KER_CFG_EP_PRE_ZERO_AMOUNT 0x0004
45 #define KER_CFG_EP_PRE_RDR_CVM_REQ_LIMIT_EXCEEDED 0x0008
46 #define KER_CFG_EP_PRE_RDR_CLESS_FLOOR_LIMIT_EXCEEDED 0x0010
51 typedef struct tag_HAL_CONFIG_NFC_COMB HAL_CONFIG_NFC_COMB;
52
56 typedef struct tag_HAL_CONFIG_NFC_COMB
57 {
58 KER_INT16U usSize;
59 KER_BYTE btVer;
61 KER_BYTE ar_btAID[16];
62 KER_BYTE btAIDLen;
64 KER_BYTE ar_btKernelID[8];
65 KER_BYTE btKernelIDLen;
67 KER_INT16U usConfDataPresentMask;
68 KER_INT16U usConfDataSetMask;
70 KER_INT16U usPreprocIndicators;
72 KER_BYTE ar_btTTQ[4];
74 KER_BYTE ar_btLimitClessTran[4];
75 KER_BYTE ar_btLimitClessFloor[4];
76 KER_BYTE ar_btLimitCVMRequired[4];
78 KER_TLV* pConfigData;
79 KER_TLV* pTranData;
81 HAL_CONFIG_NFC_COMB* pNext;
82 }HAL_CONFIG_NFC_COMB;
83
84 /* ****************************** hal_cfg_get_nfc_ep_config ******************************** */
99 extern KER_BOOL hal_cfg_get_nfc_ep_config(KER_CTX_PARAM KER_TLV* pTranData, HAL_CONFIG_NFC_COMB** ppCombList);
100
101 /* ************************** hal_cfg_get_nfc_default_kernel_id **************************** */
124 extern KER_BOOL hal_cfg_get_nfc_default_kernel_id(KER_CTX_PARAM const KER_BYTE* pAID, KER_INT16U usAIDLen, KER_BYTE* pbtKernelID, KER_BYTE* pbtKernelIDLen, KER_BYTE btMaxLen);
125
126 /* *************************** hal_cfg_get_nfc_custom_kernel_id **************************** */
139 extern KER_BOOL hal_cfg_get_nfc_custom_kernel_id(KER_CTX_PARAM const KER_BYTE* p61, KER_INT16U us61Len, KER_BYTE* pbtKernelID, KER_BYTE* pbtKernelIDLen, KER_BYTE btMaxLen);
140
141 /* ********** ID used in hal_cfg_get_config_by_id and hal_cfg_set_config_by_id ************* */
142
143 /* ******************************* ENTRY POINT CONFIGURATION ******************************* */
150 #define KER_CFG_ID_NFC_EP_STATUS_CHECK 0x1001
151
158 #define KER_CFG_ID_NFC_EP_ZERO_AMOUNT 0x1002
159
166 #define KER_CFG_ID_NFC_EP_ZERO_AMOUNT_OFFLINE 0x1003
167
174 #define KER_CFG_ID_NFC_EP_EXT_SEL_SUPPORT 0x1004
175
181 #define KER_CFG_ID_NFC_EP_TTQ 0x1005
182
188 #define KER_CFG_ID_NFC_EP_CLESS_TRAN_LIMIT 0x1006
189
195 #define KER_CFG_ID_NFC_EP_CLESS_FLOOR_LIMIT 0x1007
196
202 #define KER_CFG_ID_NFC_EP_CVM_REQUIRED_LIMIT 0x1008
203
214 #define KER_CFG_ID_NFC_PREPROC_INDICATORS_MASK 0x1009
215
216
222 #define KER_CFG_ID_NFC_EP_COLLISION_RESOLUTION_TIMEOUT 0x1021
223
230 #define KER_CFG_ID_NFC_EP_SPI 0x1031
231
239 #define KER_CFG_ID_NFC_EP_CPCL_DATA_REQUEST 0x1032
241 #define KER_CFG_NFC_EP_CPCL_DATA_REQUEST_ENABLED 0x01
242 #define KER_CFG_NFC_EP_CPCL_DATA_REQUEST_FAILURE_FATAL 0x02
252 #define KER_CFG_ID_NFC_EP_KEEP_TRAN_AFTER_SELECT_NEXT 0x1033
253
259 #define KER_CFG_ID_NFC_EP_CPCL_DATA 0x1034
260
261
262 /* ***************************** COMMON NFC KERNEL PARAMETERS ****************************** */
267 #define KER_CFG_ID_NFC_EMV_DATA_RECORD_TAG_LIST 0x1101
268
273 #define KER_CFG_ID_NFC_EMV_DISCR_DATA_TAG_LIST 0x1102
274
279 #define KER_CFG_ID_NFC_MS_DATA_RECORD_TAG_LIST 0x1103
280
285 #define KER_CFG_ID_NFC_MS_DISCR_DATA_TAG_LIST 0x1104
286
291 #define KER_CFG_ID_NFC_DATA_RECORD 0x1105
292
297 #define KER_CFG_ID_NFC_DISCR_DATA 0x1106
298
305 #define KER_CFG_ID_NFC_ENABLE_BIN_RANGE_ID_TRACE 0x1107
306
312 #define KER_CFG_ID_NFC_BIN_RANGE_ID 0x1108
313
322 #define KER_CFG_ID_NFC_ENABLE_DEDS 0x1111
323
329 #define KER_CFG_ID_NFC_DATA_EXCHANGE_LIST 0x1112
330
336 #define KER_CFG_ID_NFC_FIELD_OFF_TIMEOUT 0x1121
337
344 #define KER_CFG_ID_NFC_APDU_TIMING_LATENCY 0x1122
345
351 #define KER_CFG_ID_NFC_TRAN_CONTEXT_TAG_LIST 0x1131
352
359 #define KER_CFG_ID_NFC_GPO_APDU_TIMEOUT 0x1141
360
367 #define KER_CFG_ID_NFC_GAC_APDU_TIMEOUT 0x1142
368
375 #define KER_CFG_ID_NFC_PT_APDU_TIMEOUT 0x1143
376
383 #define KER_CFG_ID_NFC_PT_LIGHT_APDU_TIMEOUT 0x1144
384
391 #define KER_CFG_ID_NFC_CT_APDU_TIMEOUT 0x1145
392
399 #define KER_CFG_ID_NFC_CCC_APDU_TIMEOUT 0x1146
400
407 #define KER_CFG_ID_NFC_ERRD_APDU_TIMEOUT 0x1147
408
409
410 /* ****************************** MASTERCARD KERNEL PARAMETERS ***************************** */
411 /*
412 * C-2 Option name: "Mag-stripe mode contactless transactions not supported" - DF811B Byte 1 bit 8
413 * C-2 Option name: "EMV mode contactless transactions not supported" - DF811B Byte 1 bit 7
414 * C-2 Option name: "On device cardholder verification supported" - DF811B Byte 1 bit 6
415 * C-2 Option name: "Relay resistance protocol supported" - DF811B Byte 1 bit 5
416 * C-2 Option name: "Read all records even when no CDA" - DF811B Byte 1 bit 3
417 */
418
425 #define KER_CFG_ID_NFC_MC_FAILED_MS_CNTR 0x1201
426
427
428 /* ******************************** VISA KERNEL PARAMETERS ********************************* */
435 #define KER_CFG_ID_NFC_VISA_DISABLE_AUC_FOR_MANUAL_CASH 0x1301
436
443 #define KER_CFG_ID_NFC_VISA_DISABLE_AUC_FOR_CASHBACK 0x1302
444
451 #define KER_CFG_ID_NFC_VISA_FORCE_ONLINE_IF_APP_EXPIRED 0x1303
452
453
454 /* ******************************** AMEX KERNEL PARAMETERS ********************************* */
462 #define KER_CFG_ID_NFC_AMEX_MPOS 0x1401
463
464
465 /* ********************************* MIR KERNEL PARAMETERS ********************************* */
471 #define KER_CFG_ID_NFC_MIR_OUTCOME_UI_STATUS 0x1F01
472
478 #define KER_CFG_ID_NFC_MIR_OUTCOME_CVM_STATUS 0x1F02
479
486 #define KER_CFG_ID_NFC_MIR_CPLC_MAND_FOR_PROT_01 0x1F03
487
494 #define KER_CFG_ID_NFC_MIR_CPLC_MAND_FOR_PROT_02 0x1F04
495
496
497 /* restore struct alignment */
498 #include <emv_platform_restore_align.h>
499
500 #endif /* HAL_NFC_CONFIG_H */
emv_platform_restore_align.h
emv_platform_set_align.h
KER_BOOL
KER_INT8U KER_BOOL
Definition: emv_platform.h:67
KER_BYTE
uint8_t KER_BYTE
Definition: emv_platform.h:70
KER_INT16U
unsigned short KER_INT16U
Definition: emv_platform.h:61
KER_CTX_PARAM
#define KER_CTX_PARAM
Definition: emv_context.h:53
HAL_CONFIG_NFC_COMB
struct tag_HAL_CONFIG_NFC_COMB HAL_CONFIG_NFC_COMB
NFC combination configuration data.
Definition: hal_nfc_config.h:51
hal_cfg_get_nfc_custom_kernel_id
KER_BOOL hal_cfg_get_nfc_custom_kernel_id(KER_CTX_PARAM const KER_BYTE *p61, KER_INT16U us61Len, KER_BYTE *pbtKernelID, KER_BYTE *pbtKernelIDLen, KER_BYTE btMaxLen)
Provides custom mapping between Directory Entry and Requested Kernel ID.
hal_cfg_get_nfc_default_kernel_id
KER_BOOL hal_cfg_get_nfc_default_kernel_id(KER_CTX_PARAM const KER_BYTE *pAID, KER_INT16U usAIDLen, KER_BYTE *pbtKernelID, KER_BYTE *pbtKernelIDLen, KER_BYTE btMaxLen)
Provides default AID - Kernel ID mapping.
hal_cfg_get_nfc_ep_config
KER_BOOL hal_cfg_get_nfc_ep_config(KER_CTX_PARAM KER_TLV *pTranData, HAL_CONFIG_NFC_COMB **ppCombList)
Provides configuration (common / combination / tran related for EP.
tag_HAL_CONFIG_NFC_COMB
NFC combination configuration data.
Definition: hal_nfc_config.h:57
tag_HAL_CONFIG_NFC_COMB::btKernelIDLen
KER_BYTE btKernelIDLen
Definition: hal_nfc_config.h:65
tag_HAL_CONFIG_NFC_COMB::ar_btLimitClessTran
KER_BYTE ar_btLimitClessTran[4]
Definition: hal_nfc_config.h:74
tag_HAL_CONFIG_NFC_COMB::usSize
KER_INT16U usSize
Definition: hal_nfc_config.h:58
tag_HAL_CONFIG_NFC_COMB::ar_btTTQ
KER_BYTE ar_btTTQ[4]
Definition: hal_nfc_config.h:72
tag_HAL_CONFIG_NFC_COMB::usConfDataPresentMask
KER_INT16U usConfDataPresentMask
Definition: hal_nfc_config.h:67
tag_HAL_CONFIG_NFC_COMB::btVer
KER_BYTE btVer
Definition: hal_nfc_config.h:59
tag_HAL_CONFIG_NFC_COMB::btAIDLen
KER_BYTE btAIDLen
Definition: hal_nfc_config.h:62
tag_HAL_CONFIG_NFC_COMB::pConfigData
KER_TLV * pConfigData
Definition: hal_nfc_config.h:78
tag_HAL_CONFIG_NFC_COMB::ar_btKernelID
KER_BYTE ar_btKernelID[8]
Definition: hal_nfc_config.h:64
tag_HAL_CONFIG_NFC_COMB::usPreprocIndicators
KER_INT16U usPreprocIndicators
Definition: hal_nfc_config.h:70
tag_HAL_CONFIG_NFC_COMB::ar_btLimitClessFloor
KER_BYTE ar_btLimitClessFloor[4]
Definition: hal_nfc_config.h:75
tag_HAL_CONFIG_NFC_COMB::pTranData
KER_TLV * pTranData
Definition: hal_nfc_config.h:79
tag_HAL_CONFIG_NFC_COMB::usConfDataSetMask
KER_INT16U usConfDataSetMask
Definition: hal_nfc_config.h:68
tag_HAL_CONFIG_NFC_COMB::ar_btAID
KER_BYTE ar_btAID[16]
Definition: hal_nfc_config.h:61
tag_HAL_CONFIG_NFC_COMB::pNext
HAL_CONFIG_NFC_COMB * pNext
Definition: hal_nfc_config.h:81
tag_HAL_CONFIG_NFC_COMB::ar_btLimitCVMRequired
KER_BYTE ar_btLimitCVMRequired[4]
Definition: hal_nfc_config.h:76
tag_KER_TLV
TLV container structure.
Definition: emv_data.h:63