⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pbocapp.h

📁 RSA C++源代码DEMO,附加DESMD5等众多算法
💻 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 + -