📄 pbocapp.h
字号:
/*****************************
PBOC Applicaton ADF file structures
writen by Alfred Meng
Oct. 18, 1999
*****************************/
#ifndef __PBOCAPP_H
#define __PBOCAPP_H
#define PBOCASNLEN 10
#define PBOCISSUERLEN 8
typedef struct {
char Issuer[PBOCISSUERLEN];
char ATI;
char APPVER;
char ASN[PBOCASNLEN];
char OPENDATE[4];
char EXPDATE[4];
char FCI[2];
} TEF01;
#define PBOCNAMELEN 20
#define PBOCIDNLEN 16
typedef struct {
char CARDTYPE; /* 00:Personal; 10: Department */
char LBFLAG; /* Local Bank Flag */
char CHNAME[PBOCNAMELEN];
char IDN[PBOCIDNLEN];
char IDTYPE; /* 00: ID 02: passport */
} TEF02;
typedef struct {
char BAL_ED[4];
char NT_ED_ON[2];
char NT_ED_OFF[2];
char LIM_OVER[4]; // ONLY use first/last 3 bytes
char EDC_ED[2]; // check sum
char BAL_EP[4];
char NT_EP_ON[2];
char NT_EP_OFF[2];
char EDC_EP[2]; // check sum
char FLG_APP; // application lock method
char VK_DPK;
char ALG_DPK;
char VK_DTK;
char ALG_DTK;
char VK_DLK;
char ALG_DLK;
char VK_DULK;
char ALG_DULK;
char VK_DUK;
char ALG_DUK;
char N_UNB_APP; // default 33
char N_UNB_PIN;
char N_RLD_PIN;
char N_UPD_BIN; //update binary counter
char N_CHG_PIN;
char TAC_COPY[11];
char VK_GK1;
char ALG_GK1;
char VK_GK2;
char ALG_GK2;
char EPLMT[4];
char rfu;
} TEF03; // V115, V110 used
#define V130_BOADY_OFF 0x20
#define V130_2EDEP_OFF 0x3C // second ED/EP off
typedef struct { /* 32 bytes */
char N_EDEP;
char N_UNB_APP; // default 33
char N_UNB_PIN;
char N_RLD_PIN;
char N_UPD_BIN; //update binary counter
char N_CHG_PIN;
char FLG_APP; // application lock method
char VK_DPK;
char ALG_DPK;
char VK_DTK;
char ALG_DTK;
char VK_DLK;
char ALG_DLK;
char VK_DULK;
char ALG_DULK;
char VK_DUK;
char ALG_DUK;
char VK_GK1;
char ALG_GK1;
char VK_GK2;
char ALG_GK2;
char TAC_COPY[11];
} TV_130_EF03_COMM;
typedef struct { /* 28 Bytes */
char BAL_ED[4];
char NT_ED_ON[2];
char NT_ED_OFF[2];
char LIM_OVER[4]; // ONLY use last 3 bytes
char EDC_ED[2]; // check sum
char BAL_EP[4];
char NT_EP_ON[2];
char NT_EP_OFF[2];
char REF_BAL_EP[4];// ONLY use last 3 bytes
char EDC_EP[2]; // check sum
char rfu; //
} TV_130_EF03_EDEP;
typedef struct {
char TRACE[2]; /* ED|EP Online|Offline Transaction Number */
char LIM_OVER[3]; // 4 -> 3
char TRANS_AMT[4];
char TTI;
char TERMID[6];
char DATE[4];
char TIME[3];
} TEF04;
#define KT_PK 0x01
#define KT_LK 0x02
#define KT_TK 0x03
#define KT_PUK 0x04
#define KT_RPK 0x05
#define KT_AMK 0x06
#define KT_ULK 0x07
#define KT_UPK 0x08
#define KT_GK1 0x09
#define KT_GK2 0x0a
typedef struct {
char purpose;
char index;
char * value;
} TPBOCKey;
#define PBOC_ED 0x01
#define PBOC_EP 0x02
typedef struct {
char kindex;
char amount[4];
char tid[6];
char balance[4];
char nt_xx_off[2];
char lim_over[3];
char key_ver;
char key_alg;
char r_icc[4];
char asn[PBOCASNLEN];
char issuer[PBOCISSUERLEN];
char tac[4];
} TPTRANS;
#define PBOC_TTI_ED_LOAD 0x01
#define PBOC_TTI_EP_LOAD 0x02
#define PBOC_TTI_ED_UNLOAD 0x03
#define PBOC_TTI_EP_UNLOAD 0x12 // V130 changed to 0x09
#define PBOC_TTI_ED_CASH 0x04
#define PBOC_TTI_ED_PURCHASE 0x05
#define PBOC_TTI_EP_PURCHASE 0x06
#define PBOC_TTI_CREDIT_PURCHASE 0x07
typedef struct {
char aid[16];
char aidlen;
char label[32];
} TPAPP;
long bin2long( char *bin4 );
void long2bin( long bal, char *bin4 );
short bin2word( char *bin2 );
void word2bin( short bal, char *bin2 );
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -