first commit

This commit is contained in:
cheney
2026-05-22 17:19:03 +08:00
commit 40b6856fff
33 changed files with 13979 additions and 0 deletions
+29
View File
@@ -0,0 +1,29 @@
#ifndef _IC_API_H_
#define _IC_API_H_
int Read_hsm_model(char * data_out,char * data_len);
int Read_role_type(char * data_out,char * data_len);
int CARD_format(char* hsm_model);
int CARD_PRESSENT(void);
int IC_PIN_change(char * PIN_new, unsigned char new_len);
int IC_PIN_verify(char * PIN_str, unsigned char PIN_len);
int IC_crypt_change(char*key);
int IC_int_change(char*key);
int write_trans_key(char *index_str,unsigned char str_len,char * data_in,unsigned short in_len);
int read_trans_key(char *index_str,unsigned char str_len,char * data_out,unsigned short *out_len);
int write_memery_data(unsigned short offset,char * data_in, unsigned short in_len);
int read_memery_data(unsigned short offset,char * data_out, unsigned short out_len);
int reg_cardholder(char* role_type);
int reg_dev(char record_num,char* HSM);
int read_reg(char data_out[0x10][0x10]);
int IC_poweron(void);
int Publish_Card(char* hsm_model);
void Check_LRC(unsigned char *BCD,unsigned short LEN);
int chk8024(void);
int IC_SUPIN_verify(char * PIN_str,unsigned char PIN_len);
int IC_SUPIN_change(char * PIN_new,unsigned char new_len);
#endif
+281
View File
@@ -0,0 +1,281 @@
#ifndef _SJL19_h_
#define _SJL19_h_
#define PCI_DEVNAME "/dev/SJK1117Card0"
#define PCI_KEY 0x400
#define ERR_RESPOND_LEN -1
#define ERR_PARAM_FAILED -2
#define ERR_RESPOND_TIMEOUT -3
#define ERR_DEAL_CHK -4
#define ERR_PARAM -7
#define ERR_OPENDEV -8
#define ERR_FORK -9
#define CI_NOCI 0xFF
#define CI_DES 0x10
#define CI_3DES 0x20
#define CI_IDEA 0x30
#define CI_SEA 0x40
#define CI_SP02 0x50
#define CI_RSA128 0x60
#define CI_RSA256 0x70
#define KI_ZMK 0
#define KI_ZPK 1
#define KI_ZAK 2
#define KI_ZEK 3
#define KI_TMK 4
#define KI_TPK 5
#define KI_TAK 6
#define KI_TEK 7
#define KI_PVK 8
#define KI_CVK 9
#define KI_RAK 10
#define KI_PEK 11
#define KI_PMK 12
#define KI_ICKEY 13
//加解密PIN BLOCK的PIK
#define KI_PIK 49
#ifndef HAVE_
#define HAVE_
typedef struct _DEV_HANDLE {
int handle;
int msgqid;
int pid;
}DevHandle;
#endif
/*
ZMK: LMK0
ZPK: LMK1
ZAK: LMK2
ZEK: LMK3
TMK: LMK4
TPK: LMK5
TAK: LMK6
TEK: LMK7
PVK: LMK8
CVK: LMK9
RAK: LMK10
PEK: LMK11
PMK: LMK12
IC_KEY:LMK13(旧IC卡,除交易签名密钥外的其他IC卡密钥)
IC_KEY:LMK14(旧IC卡,IC卡交易签名密钥)
PCK: LMK15
IC_KEY:LMK16(新IC卡,所有密钥)
RPK: LMK17
*/
struct SJL19_Head
{
unsigned char head[32];
unsigned char command;
unsigned char cipher;
unsigned char datalen_h;
unsigned char datalen_l;
};
#define ERR_RESPOND_LEN -1
#define ERR_PARAM_FAILED -2
#define ERR_RESPOND_TIMEOUT -3
#define ERR_DEAL_CHK -4
#define PUTU32(ct, st) \
{ (ct)[0] = (unsigned int8_t)((st) >> 24); \
(ct)[1] = (unsigned int8_t)((st) >> 16); \
(ct)[2] = (unsigned int8_t)((st) >> 8); \
(ct)[3] = (unsigned int8_t)(st); }
extern int GetCRC(unsigned char *data, int len, unsigned char crc[2]);
/*
状态管理指令集(Group=1)
编号 功能 代码 函数名称
1加密卡硬件自检 0x10 int SJL19_SelfTest(int hPCI)
2加密卡初始化 0x11 int SJL19_CardInit(int hPCI)
3取得加密卡状态 0x12
*/
extern int SJL19_SelfTest(int hPCI);
extern int SJL19_CardInit(int hPCI);
extern int SJL19_GetCardInfo(int hPCI,
unsigned char CardSerial[8],
unsigned char CardVersion[4],
unsigned char LMKCheckString[16],
unsigned char *CardState,
unsigned char LoginState[3]);
/*
2.2 安全管理指令集(Group=2)
编号 指令内容 指令代码 函数定义
1 管理员登录 0x20 int SJL19_OperLogin(int hPCI,unsigned char OperIndex,unsigned char OperPasswd[8])
2 退到正常状态 0x21 int SJL19_LogoutToNormal(int hPCI)
3 退到未登录状态 0x22 int SJL19_LogoutToNologin(int hPCI)
4 修改管理员口令 0x23 int SJL19_ChangePassword(int hPCI,unsigned char OperIndex,unsigned char OldPwd[8],unsigned char NewPwd[8])
*/
extern int SJL19_OperLogin(int hPCI, unsigned char OperIndex, unsigned char OperPasswd[8]);
extern int SJL19_LogoutToNormal(int hPCI);
extern int SJL19_LogoutToNologin(int hPCI);
extern int SJL19_ChangePassword(int hPCI, unsigned char OperIndex, unsigned char OldPwd[8], unsigned char NewPwd[8]);
extern int SJL19_GenerateRand(int hPCI, unsigned char rand[16]);
extern int SJL19_ReadFlash(int hPCI, unsigned int address, unsigned char *data, unsigned int datalen);
extern int SJL19_SetLmkToTemp(int hPCI, unsigned char lmk[800]);
extern int SJL19_MoveLmkToWork(int hPCI);
extern int SJL19_ConvertDataByLMK_TempToWork(int hPCI, int Cipher, int Index, unsigned char Data[16]);
extern int SJL19_ConvertDataByLMK_WorkToTemp(int hPCI, int Cipher, int Index, unsigned char Data[16]);
extern int SJL19_EncryptByLMK(int hPCI, int Cipher, int Index, unsigned char *Data, unsigned int data_len);
extern int SJL19_DecryptByLMK(int hPCI, int Cipher, int Index, unsigned char *Data, unsigned int data_len);
extern int SJL19_EncryptByWorkKey(int hPCI, int Cipher, unsigned char WorkKey[16], unsigned char *Data, unsigned int data_len);
extern int SJL19_DecryptByWorkKey(int hPCI, int Cipher, unsigned char WorkKey[16], unsigned char *Data, unsigned int data_len);
/*用工作密钥(密文)加密数据*/
extern int SJL19_EncryptByEncWorkKey(int hPCI, int Cipher, int Index, int LMKCipher,
unsigned char WorkKey[16], unsigned char *Data,
unsigned int data_len);
/*用工作密钥(密文)解密数据*/
extern int SJL19_DecryptByEncWorkKey(int hPCI, int Cipher, int Index, int LMKCipher,
unsigned char WorkKey[16], unsigned char *Data,
unsigned int data_len);
/* 产生RSA密钥对(私钥明文)*/
extern int SJL19_GenerateRsaKey(int hPCI, int Cipher, unsigned char PublicKey[256], unsigned char PrivateKey[256]);
/* 产生RSA密钥对(私钥密文)*/
extern int SJL19_GenerateRsaEncKey(int hPCI, int Cipher, int Index, int LMKCipher, unsigned char PublicKey[256], unsigned char PrivateKey[256]);
/* 用RSA公钥加密数据*/
extern int SJL19_EncryptByPublicKey_RSA(int hPCI, int Cipher, unsigned char PublicKey[256], unsigned char *Data, int data_len);
/* 用RSA公钥解密数据*/
extern int SJL19_DecryptByPublicKey_RSA(int hPCI, int Cipher, unsigned char PublicKey[256], unsigned char *Data, int data_len);
/* 用RSA私钥明文加密数据*/
extern int SJL19_EncryptByPrivateKey_RSA(int hPCI, int Cipher, unsigned char PrivateKey[256], unsigned char *Data, int data_len);
/* 用RSA私钥明文解密数据*/
extern int SJL19_DecryptByPrivateKey_RSA(int hPCI, int Cipher, unsigned char PrivateKey[256], unsigned char *Data, int data_len);
/* 用RSA私钥密文加密数据*/
extern int SJL19_EncryptByEncPrivateKey_RSA(int hPCI, int Cipher, int Index, int LMKCipher, unsigned char PrivateKey[256], unsigned char *Data, int data_len);
/* 用RSA私钥密文加密数据*/
extern int SJL19_DecryptByEncPrivateKey_RSA(int hPCI, int Cipher, int Index, int LMKCipher, unsigned char PrivateKey[256], unsigned char *Data, int data_len);
/*数据由LMK加密转换为用工作密钥(密文)加密*/
extern int SJL19_EncryptBy_LMKToEncWorkkey(int hPCI, int Cipher, int Index1, int Index2, int LMKCipher, unsigned char WorkKey[16], unsigned char *Data, int data_len);
/*数据由工作密钥(密文)加密转换为用LMK加密*/
extern int SJL19_EncryptBy_EncWorkkeyToLMK(int hPCI, int Cipher, int Index1, int Index2, int LMKCipher, unsigned char WorkKey[16], unsigned char *Data, int data_len);
/*数据由工作密钥一(密文)加密转换为用工作密钥二(密文)加密*/
extern int SJL19_EncryptBy_EncWorkkey1ToEncWorkkey2(int hPCI, int Cipher, int Index1, int Index2,
int LMKCipher,
unsigned char WorkKey1[16],
unsigned char WorkKey2[16],
unsigned char *Data, int data_len);
/*数据在同一LMK下进行加密算法转换*/
extern int SJL19_ConvertByLMK(int hPCI, int Index,
int LMKCipher1, int LMKCipher2,
unsigned char *Data, int data_len);
/*数据在同一工作密钥(密文)下进行加密算法转换*/
extern int SJL19_ConvertByWorkKey(int hPCI, int Index,
int LMKCipher, int KeyCipher1, int KeyCipher2,
unsigned char WorkKey[16],
unsigned char *Data, int data_len);
/*PINBLOCK由工作密钥一(密文)加密转为PIN用工作密钥二(密文)加密*/
extern int SJL19_PinblockToPin(int hPCI, int Cipher, int Index1, int Index2,
int LMKCipher, unsigned char PINFormat,
unsigned char WorkKey1[16], unsigned char WorkKey2[16],
unsigned char PAN[8], unsigned char PINBLOCK[8]/*PinBlock(In)Pin(Out)*/);
/* PIN用工作密钥一(密文)转为PINBLOCK用工作密钥二(密文)加密*/
extern int SJL19_PinToPinblock(int hPCI, int Cipher, int Index1, int Index2,
int LMKCipher, unsigned char PINFormat,
unsigned char WorkKey1[16], unsigned char WorkKey2[16],
unsigned char PAN[8], unsigned char PINBLOCK[8]/*Pin(In)PinBlock(Out)*/);
extern int SJL19_MD5(int hPCI, unsigned char *Data, unsigned int data_len, unsigned char Code[16]);
extern int GetCRC(unsigned char *data, int len, unsigned char crc[2]);
/*
2.1 状态管理指令集(Group=1)
编号 功能 代码 函数名称
1 加密卡硬件自检 0x10 int SJL19_SelfTest(int hPCI)
2 加密卡初始化 0x11 int SJL19_CardInit(int hPCI)
3 取得加密卡状态 0x12
*/
extern int SJL19_SelfTest(int hPCI);
extern int SJL19_CardInit(int hPCI);
extern int SJL19_GetCardInfo(int hPCI,
unsigned char CardSerial[8],
unsigned char CardVersion[4],
unsigned char LMKCheckString[16],
unsigned char *CardState,
unsigned char LoginState[3] );
/*
2.2 安全管理指令集(Group=2)
编号 指令内容 指令代码 函数定义
1 管理员登录 0x20 int SJL19_OperLogin(int hPCI,unsigned char OperIndex,unsigned char OperPasswd[8])
2 退到正常状态 0x21 int SJL19_LogoutToNormal(int hPCI)
3 退到未登录状态 0x22 int SJL19_LogoutToNologin(int hPCI)
4 修改管理员口令 0x23 int SJL19_ChangePassword(int hPCI,unsigned char OperIndex,unsigned char OldPwd[8],unsigned char NewPwd[8])
*/
extern int SJL19_OperLogin(int hPCI, unsigned char OperIndex, unsigned char OperPasswd[8]);
extern int SJL19_LogoutToNormal(int hPCI);
extern int SJL19_LogoutToNologin(int hPCI);
extern int SJL19_ChangePassword(int hPCI, unsigned char OperIndex, unsigned char OldPwd[8], unsigned char NewPwd[8]);
extern int SJL19_GenerateRand(int hPCI, unsigned char rand[16]);
extern int SJL19_ReadFlash(int hPCI, unsigned int address, unsigned char *data, unsigned int datalen);
extern int SJL19_WriteFlash(int hPCI, unsigned int address, unsigned char *data, unsigned int datalen);
extern int SJL19_SetLmkToTemp(int hPCI, unsigned char lmk[800]);
extern int SJL19_MoveLmkToWork(int hPCI);
extern int SJL19_ConvertDataByLMK_TempToWork(int hPCI, int Cipher, int Index, unsigned char Data[16]);
extern int SJL19_ConvertDataByLMK_WorkToTemp(int hPCI, int Cipher, int Index, unsigned char Data[16]);
extern int SJL19_EncryptByLMK(int hPCI, int Cipher, int Index, unsigned char *Data, unsigned int data_len);
extern int SJL19_DecryptByLMK(int hPCI, int Cipher, int Index, unsigned char *Data, unsigned int data_len);
extern int SJL19_EncryptByWorkKey(int hPCI, int Cipher, unsigned char WorkKey[16], unsigned char *Data, unsigned int data_len);
extern int SJL19_DecryptByWorkKey(int hPCI, int Cipher, unsigned char WorkKey[16], unsigned char *Data, unsigned int data_len);
/*用工作密钥(密文)加密数据*/
extern int SJL19_EncryptByEncWorkKey(int hPCI, int Cipher, int Index, int LMKCipher,
unsigned char WorkKey[16], unsigned char *Data,
unsigned int data_len);
/*用工作密钥(密文)解密数据*/
extern int SJL19_DecryptByEncWorkKey(int hPCI, int Cipher, int Index, int LMKCipher,
unsigned char WorkKey[16], unsigned char *Data,
unsigned int data_len);
/* 产生RSA密钥对(私钥明文)*/
extern int SJL19_GenerateRsaKey(int hPCI, int Cipher, unsigned char PublicKey[256], unsigned char PrivateKey[256]);
/* 产生RSA密钥对(私钥密文)*/
extern int SJL19_GenerateRsaEncKey(int hPCI, int Cipher, int Index, int LMKCipher, unsigned char PublicKey[256], unsigned char PrivateKey[256]);
/* 用RSA公钥加密数据*/
extern int SJL19_EncryptByPublicKey_RSA(int hPCI, int Cipher, unsigned char PublicKey[256], unsigned char *Data, int data_len);
/* 用RSA公钥解密数据*/
extern int SJL19_DecryptByPublicKey_RSA(int hPCI, int Cipher, unsigned char PublicKey[256], unsigned char *Data, int data_len);
/* 用RSA私钥明文加密数据*/
extern int SJL19_EncryptByPrivateKey_RSA(int hPCI, int Cipher, unsigned char PrivateKey[256], unsigned char *Data, int data_len);
/* 用RSA私钥明文解密数据*/
extern int SJL19_DecryptByPrivateKey_RSA(int hPCI, int Cipher, unsigned char PrivateKey[256], unsigned char *Data, int data_len);
/* 用RSA私钥密文加密数据*/
extern int SJL19_EncryptByEncPrivateKey_RSA(int hPCI, int Cipher, int Index, int LMKCipher, unsigned char PrivateKey[256], unsigned char *Data, int data_len);
/* 用RSA私钥密文加密数据*/
extern int SJL19_DecryptByEncPrivateKey_RSA(int hPCI, int Cipher, int Index, int LMKCipher, unsigned char PrivateKey[256], unsigned char *Data, int data_len);
/*数据由LMK加密转换为用工作密钥(密文)加密*/
extern int SJL19_EncryptBy_LMKToEncWorkkey(int hPCI, int Cipher, int Index1, int Index2, int LMKCipher, unsigned char WorkKey[16], unsigned char *Data, int data_len);
/*数据由工作密钥(密文)加密转换为用LMK加密*/
int SJL19_EncryptBy_EncWorkkeyToLMK(int hPCI, int Cipher, int Index1, int Index2, int LMKCipher, unsigned char WorkKey[16], unsigned char *Data, int data_len);
/*数据由工作密钥一(密文)加密转换为用工作密钥二(密文)加密*/
extern int SJL19_EncryptBy_EncWorkkey1ToEncWorkkey2(int hPCI, int Cipher, int Index1, int Index2,
int LMKCipher,
unsigned char WorkKey1[16],
unsigned char WorkKey2[16],
unsigned char *Data, int data_len);
/*数据在同一LMK下进行加密算法转换*/
extern int SJL19_ConvertByLMK(int hPCI, int Index,int LMKCipher1, int LMKCipher2,unsigned char *Data, int data_len);
/*数据在同一工作密钥(密文)下进行加密算法转换*/
extern int SJL19_ConvertByWorkKey(int hPCI, int Index,int LMKCipher, int KeyCipher1, int KeyCipher2,
unsigned char WorkKey[16],unsigned char *Data, int data_len);
/*PINBLOCK由工作密钥一(密文)加密转为PIN用工作密钥二(密文)加密*/
extern int SJL19_PinblockToPin(int hPCI, int Cipher, int Index1, int Index2,
int LMKCipher, unsigned char PINFormat,
unsigned char WorkKey1[16], unsigned char WorkKey2[16],
unsigned char PAN[8], unsigned char PINBLOCK[8]//PinBlock(In)Pin(Out)
);
/* PIN用工作密钥一(密文)转为PINBLOCK用工作密钥二(密文)加密*/
extern int SJL19_PinToPinblock(int hPCI, int Cipher, int Index1, int Index2,
int LMKCipher, unsigned char PINFormat,
unsigned char WorkKey1[16], unsigned char WorkKey2[16],
unsigned char PAN[8], unsigned char PINBLOCK[8]//Pin(In)PinBlock(Out)
);
extern int SJL19_MD5(int hPCI, unsigned char *Data, unsigned int data_len, unsigned char Code[16]);
#endif
+119
View File
@@ -0,0 +1,119 @@
#ifndef _ASC16_H_
#define _ASC16_H_
extern unsigned char ASC16_Begin;
/* 8*16点阵数字 */
extern unsigned char ASC16_Num[10][16];
/*8*16点阵斜杠符号*/
extern unsigned char ASC16_Slash[16];
/* 8*16点阵星号*/
extern unsigned char ASC16_Star[16];
/* 8*16点阵小数点*/
extern unsigned char ASC16_Dot[16];
/* 8*16点阵逗号*/
extern unsigned char ASC16_Comma[16];
/* 8*16点阵空格*/
extern unsigned char ASC16_Space[16];
/* 8*16点阵减号*/
extern unsigned char ASC16_Sub[16];
/* 8*16点阵实心左箭头*/
extern unsigned char ASC16_Arrow[16];
/* 8*16点阵大于号*/
extern unsigned char ASC16_Above[16];
/* 8*16点阵小于号*/
extern unsigned char ASC16_Below[16];
/* 8*16点阵惊叹号*/
extern unsigned char ASC16_Claim[16];
/* 8*16点阵冒号*/
extern unsigned char ASC16_Colon[16];
/* 8*16点阵左括号*/
extern unsigned char ASC16_LBrack[16];
/* 8*16点阵右括号*/
extern unsigned char ASC16_RBrack[16];
/* 8*16点阵对勾*/
//unsigned char ASC16_Right[16]={0x80,0x00,0x00,0x00,0x80,0xC0,0x60,0x00,0x01,0x03,0x06,0x03,0x01,0x00,0x00,0x00};
/* 8*16点阵问号*/
extern unsigned char ASC16_What[16];
/* 8*16点阵左方括号*/
extern unsigned char ASC16_LFBrack[16];
/* 8*16点阵右方括号*/
extern unsigned char ASC16_RFBrack[16];
/*8*16点阵 I */
extern unsigned char ASC16_IChar[16];
/*8*16点阵 P */
extern unsigned char ASC16_PChar[16];
/*8*16点阵D*/
extern unsigned char ASC16_DChar[16];
/*8*16点阵N*/
extern unsigned char ASC16_NChar[16];
/*8*16点阵S*/
extern unsigned char ASC16_SChar[16];
/*8*16点阵T*/
extern unsigned char ASC16_TChar[16];
/*8*16点阵a*/
extern unsigned char ASC16_aChar[16];
/*8*16点阵g*/
extern unsigned char ASC16_gChar[16];
/*8*16点阵x*/
extern unsigned char ASC16_xChar[16];
/*8*16点阵A*/
extern unsigned char ASC16_A_Char[16];
/*8*16点阵B*/
extern unsigned char ASC16_BChar[16];
/*8*16点阵B*/
extern unsigned char ASC16_B_Char[16];
/*8*16点阵C*/
extern unsigned char ASC16_CChar[16];
/*8*16点阵D*/
extern unsigned char ASC16_D_Char[16];
/*8*16点阵E*/
extern unsigned char ASC16_EChar[16];
/*8*16点阵E*/
extern unsigned char ASC16_E_Char[16];
/*8*16点阵F*/
extern unsigned char ASC16_F_Char[16];
/*8*16点阵U*/
extern unsigned char ASC16_U_Char[16];
/*8*16点阵K*/
extern unsigned char ASC16_K_Char[16];
/*8*16点阵M*/
extern unsigned char ASC16_M_Char[16];
/*8*16点阵L*/
extern unsigned char ASC16_L_Char[16];
/*8*16点阵G*/
extern unsigned char ASC16_G_Char[16];
/*8*16点阵W*/
extern unsigned char ASC16_WChar[16];
/*8*16点阵O*/
extern unsigned char ASC16_OChar[16];
/*8*16点阵X*/
extern unsigned char ASC16_X_Char[16];
/*8*16点阵Y*/
extern unsigned char ASC16_Y_Char[16];
/*8*16点阵Z*/
extern unsigned char ASC16_Z_Char[16];
/*8*16点阵R*/
extern unsigned char ASC16_R_Char[16];
/* *8*16点阵'N' */
extern unsigned char ASC16_N_Char[16];
/* *8*16点阵'S' */
extern unsigned char ASC16_S_Char[16];
/* *8*16点阵'J' */
extern unsigned char ASC16_J_Char[16];
/* *8*16点阵'H' */
extern unsigned char ASC16_H_Char[16];
/* *8*16点阵'r' */
extern unsigned char ASC16_r_Char[16];
/* *8*16点阵'd' */
extern unsigned char ASC16_d_Char[16];
/* *8*16点阵'L' */
extern unsigned char ASC16_L_Char[16];
/* *8*16点阵'V' */
extern unsigned char ASC16_V_Char[16];
extern unsigned char ASC16_End;
#endif /* ASC16_H_ */
+29
View File
@@ -0,0 +1,29 @@
#ifndef _ASC8_H_
#define _ASC8_H_
/* 6*8点阵数字*/
unsigned char ASC8_Num[16][6];
/* 6*8点阵小数点*/
unsigned char ASC8_Dot[6];
/* 6*8点阵逗号*/
unsigned char ASC8_Comma[6];
/* 6*8点阵空格*/
unsigned char ASC8_Space[6];
/* 6*8点阵减号*/
//unsigned char ASC8_Sub[6];
/* 6*8点阵星号*/
unsigned char ASC8_Star[6];
/* 6*8点阵下划线*/
unsigned char ASC8_Line[6];
/* 6*8点阵冒号*/
unsigned char ASC8_Colon[6];
/* 6*8点阵对勾*/
//unsigned char ASC8_Right[6]={0x10,0x20,0x10,0x08,0x04,0x02};
/* 6*8点阵叉号*/
//unsigned char ASC8_Cross[6]={0x42,0x24,0x18,0x18,0x24,0x42};
/* 6*8点阵斜线*/
unsigned char ASC8_Bias[6];
#endif
+157
View File
@@ -0,0 +1,157 @@
#ifndef __COMMON_H__
#define __COMMON_H__
#include <dirent.h>
#include <stdio.h>
void PrintHex(char *prompt,unsigned char * data,int len);
void PrintHex_1(unsigned char *data,int len);
void PrintAscii(unsigned char *data,int len);
void trim(char *str);
int my_getdate( char date[9] );
int my_getyear();
int my_getmonth();
int my_getwday();
int my_getday();
int my_gethour();
int my_getmin();
int my_getsec();
void my_swap4byte(char text[4]);
unsigned int my_getrnd(int cnt);
int CalcLenByDir(char *dir);
void my_GenerateMK(unsigned char *rand,int len);
int my_checkdate(char date[8]);
int alltrim(char *s);
void byte_not(unsigned char *desc,unsigned char *src,int len);
void byte_xor(unsigned char *desc,unsigned char *src,int len);
void byte_sub(unsigned char *desc,unsigned char *src,int len);
void byte_add(unsigned char *desc,unsigned char *src,int len);
void getcrc_one(unsigned char *crc,unsigned char *data,int len);
void GetErrMsg(int ErrNo,char *msg);
char * GetLogTime(void);
int SystemCmd(char * cmd);
FILE * PopenCmd(char * cmd,char * flag);
int FindProcess(char * name);
void signal_set();
//函数功能接口定义区
void read_ini_file();
//按密钥结构将密钥内容写文件
int WritekeyToFile(unsigned char *keyfile,
unsigned char *key_organizationnum,
unsigned char *key_type,
unsigned char *key_serialnum,
unsigned int key_len,
unsigned char *key_cryptograph,
unsigned char *key_mac,
unsigned char *key_starttime,
unsigned char *key_endtime,
unsigned char * key_index,
unsigned char * key_algid);
//从某个密钥文件中按密钥结构取该密钥的内容
int ReadkeyFromFile(unsigned char *keyfile,
unsigned char *key_organizationnum,
unsigned char *key_type,
unsigned char *key_serialnum,
unsigned int *key_len,
unsigned char *key_cryptograph,
unsigned char *key_mac,
unsigned char *key_starttime,
unsigned char *key_endtime,
unsigned char * key_index,
unsigned char * key_algid);
//从某个密钥文件中取该密钥所属的机构号
int GetKeyOrganizationnumFromFile(unsigned char *keyfile, unsigned char *key_organizationnum, unsigned char *Key_Value);
//从某个密钥文件中取该密钥所属的类型
int GetKeyTypeFromFile(unsigned char *keyfile, unsigned char *key_type, unsigned char *Key_Value);
//从某个密钥文件中取该密钥的编号
int GetKeySerialnumFromFile(unsigned char *keyfile, unsigned char *key_serialnum, unsigned char *Key_Value);
//从某个密钥文件中取该密钥的长度
int GetKeylenFromFile(unsigned char *keyfile, unsigned char *key_len, unsigned char *Key_Value, int *keylen);
//从某个密钥文件中取该密钥的密文值
int GetKeyCryptographFromFile(unsigned char *keyfile, unsigned char *key_cryptograph, unsigned char *Key_Value);
//从某个密钥文件中取该密钥明文md5_MAC
int GetKeyMacFromFile(unsigned char *keyfile, unsigned char *key_mac, unsigned char *Key_Value);
//从某个密钥文件中取该密钥的起始生命周期
int GetKeyStarttimeFromFile(unsigned char *keyfile, unsigned char *key_starttime, unsigned char *Key_Value);
//从某个密钥文件中取该密钥的截至生命周期
int GetKeyEndtimeFromFile(unsigned char *keyfile, unsigned char *key_endtime, unsigned char *Key_Value);
//从某个密钥文件中取该密钥主密钥加密索引
int GetKeyIndexFromFile(unsigned char *keyfile, unsigned char *key_index, unsigned char *Key_Value);
//从某个密钥文件中取该密钥的算法模式
int GetKeyAlgidFromFile(unsigned char *keyfile, unsigned char *key_algid, unsigned char *Key_Value);
//执行某个linux指令的函数
int MSystemCmd(char * cmd);
//创建密钥文件夹
int SetKeyDir(unsigned char *dir, unsigned char *key_organizationnum, unsigned char *key_type);
//获取当前密钥类型目录字符串 以及 字符串的长度
int GetKeyDir(unsigned char *dir, unsigned char *key_organizationnum, unsigned char *key_type);
//文件名约束函数
int select_dir(const struct dirent *dir);
void get_system_time();
void set_system_time(char * time);
unsigned char GetKey(void);
unsigned char WaitKeyin(void);
unsigned char WaitKeyin_Combine_key();
int GetKeyValueFile(char *filename, char* Key, char *KeyValue);
int SetKeyValueFile(char *file_name, char *key_name, char *key_value);
void append_key(char * file_name,char * key,char * value);
#define E_SYS_USER 0x70
#define E_SYS_PWD_ERROR 0x71
int check_sys_pwd(const char *pwdtext);
void modify_sys_pwd_behave(char * user_name ,char * pwd);
void modify_sys_pwd(int old_pwd_len,char * old_pwd,int new_pwd_len,char * new_pwd);
void system_login(unsigned char * pwd, int pwd_len);
void sysUsecTime(long * sec, long *usec);
int CheckHex(int length, unsigned char *hex);
int CheckDec(int length, unsigned char *dec);
int GetDecLen(int length, unsigned char *dec);
int GetHexLen(int length, unsigned char *Hex);
int CheckLen(int inlen, int length);
int CheckDataLen(int inlen, int length);
int check_K(int length, unsigned char *hex);
void AddOddParity(int len, unsigned char *key);
int VerifyOddParity(int len, unsigned char *key);
char variant(unsigned char ch);
int check_N(unsigned char len,unsigned char *data);
void ScanDec(int len, unsigned char *inBuf, unsigned char *outBuf);
void ScanDecForCSC(int len, unsigned char *inBuf, unsigned char *outBuf);
void bcd_to_dsp(char * bcd, int len, char *dsp);
void read_ini_file();
void reduced_bcd_to_dsp(char * bcd, int len, char *dsp);
void vip_dsp_to_bcd(char * dsp, int len, char *bcd);
#endif
+12
View File
@@ -0,0 +1,12 @@
#ifndef __CTRANSCODE_H__
#define __CTRANSCODE_H__
void Byte2String(int len, unsigned char *InBuf, unsigned char *OutBuf);
void String2Byte(int len, unsigned char *InBuf, unsigned char *OutBuf);
void hextoasc(unsigned char *asc,unsigned char *hex,int len);
void asctohex(unsigned char *hex,unsigned char *asc,int len);
#endif
+24
View File
@@ -0,0 +1,24 @@
#ifndef __CUSTOM__H__
#define __CUSTOM__H__
#include "ctranscode.h"
#include "asc16.h"
#include "asc8.h"
#include "hzk16.h"
#include "lcddisplay.h"
#include "paneldeal.h"
#include "global.h"
#include "common.h"
#include "serial.h"
#include "error_no.h"
#include "SJL19.h"
#include "sham.h"
#include "usboperate.h"
#include "IC_API.h"
#include "utils.h"
#include "usb.h"
#include "define.h"
#endif
+1506
View File
File diff suppressed because it is too large Load Diff
+671
View File
@@ -0,0 +1,671 @@
#ifndef _ERROR_NO_H_
#define _ERROR_NO_H_
#define RET_SUCCESS 0x00
#define ERR_CARD_SELFTEST 0x01 //卡自检硬件错误
#define ERR_NOLMK 0x02 //卡中LMK数据无效
#define ERR_FPGA_SELFTEST 0x03 //FPGA自检错误
#define ERR_TIMECHIP 0x04 //时钟芯片异常
#define ERR_CARDCMD 0x10 //命令代码错误
#define ERR_CARDDATA_LEN 0x11 //数据长度错误
#define ERR_CARDDATA_CRC 0x12 //数据包CRC校验错误
#define ERR_OPER_ID 0x20 //管理员ID号错误
#define ERR_OPER_PWD 0x21 //管理员口令错误
#define ERR_OPER_CHK0 0x22 //管理员口令容错次数为0
#define ERR_NOAUTH 0x23 //非二人登录(非授权状态)
#define ERR_NOLOGIN 0x24 //无管理员登录(未登录状态)
#define ERR_ALREADY_LOGIN 0x25 //管理员已经登录
#define ERR_AIRTHMETIC 0x30 //指定的算法无效
#define ERR_DATALEN_8 0x31 //数据长度错误,不能被8整除
#define ERR_DATALEN_16 0x32 //数据长度错误,不能被16整除
#define ERR_DATALEN_128 0x33 //数据长度错误,不能被128整除
#define ERR_DATALEN_256 0x34 //数据长度错误,不能被256整除
#define ERR_AUTH_LMK 0x35 //指定索引的LMK被禁止
#define ERR_FLASH_ADD 0x40 //数据FLASH读写地址越界
#define ERR_FLASH_WRITE 0x41 //写数据FLASH异常
#define ERR_RANDCHIP 0x42 //随机数芯片操作异常
#define ERR_CENCCHIP 0x43 //国密算法芯片操作异常
#define ERR_KEY_DATE 0x50 //密钥日期错误
#define ERR_ADMINNO 0x51 //管理员号错误
#define ERR_ADMINAGIN 0x52 //管理员已登录
#define ERR_ADMINPWD 0x53 //管理员口令错误
#define ERR_CHECKTAG 0x54 //Tag校验错误
#define ERR_CHECKDAC 0x55 //DAC校验错误
#define ERR_KEYFLAG 0x56 //密钥标志错误
#define ERR_BANKNO 0x57 //银行行号错误
#define ERR_DATALEN 0x58 //加密数据长度错误
#define ERR_LOGINTWO 0x59 //登录的管理员人数少于两人
#define ERR_SELFTEST 0x5A //自检失败
#define ERR_ENCODE 0x5B //密押错误
#define ERR_LOGINTHREE 0x5C //登录的管理员人数少于三人
#define ERR_CHECKLMK 0x5D //系统主密钥较验错误
#define ERR_COMMAND 0x5E //未知命令
#define ERR_KEYAGIN 0x5F //密钥已设置
#define ERR_LENGTH 0x66 //数据包长度错误
#define ERR_DATAFORMAT 0x67 //数据包格式错误
#define ERR_DATACRC 0x68 //数据包CRC错误
#define ERR_BANKNO_ISEMPTY 0x69 //行号为空
#define ERR_CARDTIMEOUT 0x6A //密押卡处理超时
#define ERR_CARDWRITE 0x6B //写密押卡错误
#define ERR_CARDREAD 0x6C //读密押卡错误
#define ERR_CARDBANKNO 0x6D //行号已满
#define ERR_OPENPCI 0x6E //密押卡打开失败
#define ERR_CARDLEN 0x6F //卡数据长度错误
#define ERR_SYSTEM 0x73 //系统调用错误
#define ERR_MSGSEND 0x74 //msgsnd系统调用失败
#define ERR_MSGRECV 0x75 //msgrcv系统调用失败
#define ERR_TCPLEN 0x76 //TCP数据包长度错误
#define ERR_INVAILD_KEY 0x77 //密钥过期
#define ERR_FUTURE_KEY 0x78 //密钥未启用
#define ERR_CHECK_VALUE_NOT_EXIST 0x88
#define ERR_KEY_EMPTY 0xA0 //没有任何密钥
#define ERR_PORT_SAME 0xA2 //端口相同
#define ERR_ALREADY_EXIST 0xA3 //密钥已启用
#define ERR_IMPORT_OLD_KEY1 0xA4 //分量一导入失败
#define ERR_IMPORT_OLD_KEY2 0xA8 //分量二密钥导入失败
#define ERR_NOT_MANAGE 0xA5 //非管理状态
#define ERR_NOT_LISTEN 0xA6 //非编核押状态
#define ERR_WRITE_OFF_OLD_KEY 0xA9 //旧密钥注销失败
#define ERR_SET_OLD_KEY 0XAA
#define ERR_OLD_KEY_NOT_EXIST 0xCE //旧密钥不存在
#define ERR_IC_POWERON 0x01
#define ERR_IC_PRESSENT 0x02
#define ERR_IC_PASSWD 0x03
#define ERR_IC_GET_HSMMODEL 0x04
#define ERR_IC_SET_HSMMODEL 0x05
#define ERR_IC_GET_CARDHOLDER 0x06
#define ERR_IC_SET_CARDHOLDER 0x07
#define ERR_IC_WRITE 0x08
#define ERR_IC_READ 0x09
#define ERR_IC_INIT 0x0A
#define ERR_IC_NOTSYSICCARD 0x0B
#define ERR_IC_LMK_ONE 0x0D
#define ERR_IC_LMK_TWO 0x0E
#define ERR_IC_LMK_THREE 0x0F
#define ERR_ROLE_NOTLMK 0x10
#define ERR_ROLE_NOTCOM 0x11
#define ERR_ROLE_NOTOPR 0x12
#define ERR_IC_GET_REGISTER_HSM 0x13
#define ERR_IC_HSM_REGISTERED 0x14
#define ERR_IC_HSM_REGISTERE 0x15
#define ERR_IC_COM_ONE 0x20
#define ERR_IC_COM_TWO 0x21
#define ERR_IC_OPR_ONE 0x22
#define ERR_IC_REGISTER_LOCAL 0X23
#define ERR_IC_NOT_REGISTER_HSM 0x24
#define ERR_IC_NO_CARD 0x25
#define ERR_IC_NO_ISSUE 0x26
#define ERR_IC_HSM_CANCEL 0x27
#define ERR_IC_CANCEL_LOCAL 0X28
#define ERR_IC_NOT_CLEAR 0x29
#define ERR_IC_REGISTERE_FULL 0x2A
#define ERR_LMK_GENERATE 0x30
#define ERR_LMK_DISPERSE 0x31
#define ERR_LMK_MOVE 0x32
#define ERR_LMK_BACK 0x33
#define ERR_LMK_RECOVER 0x34
#define ERR_LMK_RMSEED 0x35
#define ERR_LMK_NOSEED 0x36
#define ERR_LMK_INEXISTENCE 0x37
#define ERR_LMK_TEST 0x38
#define ERR_LMK_LOCK 0x39
#define ERR_LMK_TMP_TEST 0x3A //临时去主密钥异常
#define ERR_LMK_DESTROY 0x3B ///*销毁主密钥*/
#define ERR_LOG_SETING 0x40
#define ERR_GET_HSM_CODE 0x41
#define ERR_GET_HSM_VERSIONS 0x42
#define ERR_GETLMK_GENERATE_FLAG 0x43
#define ERR_GENERATE_TMPKEY 0x50
#define ERR_ENCRYPT_BYTMPKEY 0x51
#define ERR_TMPKEY_TOLMK 0x52
#define ERR_LMK_WORK_TO_TMP 0x53 //主密钥工作区到临时去转机密失败
#define ERR_OPEN_SERIALPORT 0x60
#define ERR_SET_SERIALPORT 0x61
#define ERR_FORK_PID 0x62
#define ERR_CLOSE_SERIALPORT 0x63
#define ERR_KILL_PID 0x64
#define ERR_COM_NO 0x65
#define ERR_BOTT_NO 0x66
#define ERR_GET_COM_NO 0x67
#define ERR_GET_BOTT_NO 0x68
#define ERR_GET_BINDIR 0x69 //获取工作目录失败
#define ERR_NOT_KEYDIR 0x6A //密钥管理目录不存在
#define ERR_OPGAN_NOT_EXIST 0x6B //机构号不存在
#define ERR_GET_KEY 0x6C //获取密钥失败
#define ERR_GENERATE_KEYMAC 0x6D //计算密钥MAC失败
#define ERR_CHECK_MAC 0x6E //密钥MAC校验失败
#define ERR_SAVE_KEY 0x6F //保存密钥失败
#define ERR_INIFILE_NOT_EXIST 0x70 //文件不存在
#define ERR_FILE_BACK 0x71 //文件备份失败
#define ERR_FILE_RECOVER 0x72 //文件恢复失败
#define ERR_FILE_GET 0x73 //文件获取失败
#define ERR_FILE_SAVE 0x74 //文件保存失败
#define ERR_SYS_CMD 0x75 //指令错误
#define ERR_COM_TIME_OUT 0x76 //等待客户端连接超时
#define ERR_HAVE_INIT 0x77 //IC卡已被初始化过
#define ERR_COM_TIME_FORM 0xB0 //日期格式错误
#define ERR_KEYDB_OPEN_FAIL 0xB1 //数据库打开失败
#define ERR_KEYDB_OPERATE_FAIL 0xB2 //数据库操作失败
#define ERR_ENCRYPTCARD_OPERATE_FAIL 0xB3 //操作加密卡失败
#define ERR_ORGAN_NOT_EXIST 0x8D//0xB4 //机构号不存在
#define ERR_TYPE_NOT_EXIST 0xB5 //密钥类型不存在
#define ERR_KEYSERIAL_EXIST 0x8E//0xBC //密钥已存在
#define ERR_ORGAN_SERIAL_EXIST 0xB9 //机构号已存在
#define ERR_TYPE_SERIAL_EXIST 0xBA //密钥类型已存在
#define ERR_KEY_CPS_FAIL 0x8F//0xBC //合成密钥失败
#define ERR_KEY_PASSWD_FAIL 0xBD //传输密钥口令错误
#define ERR_IMPORT_KEY_DIF 0xBE //分量录入不一致
#define ERR_IMPORT_CHECK 0x8C//0xBF //分量校验失败
#define ERR_PACKET_LEN 0x9A ///*报文头应小于32:*/
#define ERR_PACKET_TAIL_BYTES 0x9B /*报文尾应小于256:*/
#define ERR_PACKET_FIELD_GET 0x9C //报文域设置失败
#define ERR_COM_TIME_END 0x9D //截止日期错误
#define ERR_COM_TIME_START 0x9E //启用日期错误
#define ERR_PACKET_TYPE 0x9F//报文类型设置失败
#define ERR_COM_GET_BINDIR 0x01 //获取工作目录失败
#define ERR_COM_GET_KEYDIR 0x02 //获取密钥管理目录失败
#define ERR_COM_NOT_KEYDIR 0x03 //密钥管理目录不存在
#define ERR_COM_CREAT_ORGANINFO 0x04 //创建机构信息文件失败
#define ERR_COM_OPEN_TORGANINFO 0x05 //打开机构信息文件失败
#define ERR_COM_CREAT_TYPEINFO 0x06 //创建密钥类型信息文件失败
#define ERR_COM_OPEN_TYPEINFO 0x07 //打开密钥类型信息文件失败
#define ERR_COM_OPGAN_EXIST 0x08 //机构号已存在
#define ERR_COM_OPGAN_NOT_EXIST 0x09 //机构号不存在
#define ERR_COM_TYPE_EXIST 0x0A //密钥类型已存在
#define ERR_COM_TYPE_NOT_EXIST 0x0B //密钥类型不存在
#define ERR_COM_CREAT_OPGAN 0x0C //创建机构目录失败
#define ERR_COM_CREAT_TYPE 0x0D //创建密钥类型目录失败
#define ERR_COM_TYPEKEY_EXIST 0x0E //密钥类型已存在密钥
#define ERR_COM_CREAT_RSA 0x0F //创建RSA密钥类型目录失败
#define ERR_COM_CREAT_SM2 0x10 //创建SM2密钥类型目录失败
#define ERR_COM_OPEN_TYPE_NUM 0x11 //打开类型密钥编号文件
#define ERR_COM_WRITE_TYPE_NUM 0x12 //写类型密钥编号文件
#define ERR_COM_TMKTYPE_NOT_EXIST 0x13 //通讯密钥类型不存在
#define ERR_COM_CREAT_TYPE_NUM 0x15 //创建类型密钥编号文件
#define ERR_COM_GENERATE_KEY 0x20 //产生对称密钥失败
#define ERR_COM_GENERATE_KEYMAC 0x21 //计算密钥MAC失败
#define ERR_COM_SAVE_KEY 0x22 //保存密钥失败
#define ERR_COM_DISPERSE_KEY 0x23 //对称密钥分散失败
#define COM_DISPERSE_KEY_OK 0x24 //对称密钥分散成功
#define COM_PRINT_COMPOSE_OK 0x25 //打印分量N完成
#define ERR_COM_PRINT_NOT_PAPER 0x26 //打印机无打印纸
#define ERR_COM_PRINT 0x27 //打印失败
#define COM_PRINT_OK 0x28 //打印所有分量完成
#define ERR_COM_COMPOSE 0x29 //密钥合成失败
#define ERR_COM_GET_KEYNO 0x2A //获取密钥编号失败
#define ERR_COM_UPDATE_KEYNO 0x2B //更新密钥编号失败
#define ERR_COM_GENERATE_SM2 0x2C //产生SM2密钥失败
#define ERR_COM_KEY_EXIST 0x2D //密钥已存在
#define ERR_COM_CREAK_TMPFILE 0x2E //创建通信密钥临时文件失败
#define ERR_COM_GET_TMPFILE 0x38 //获取通信密钥临时文件失败
#define ERR_COM_TMK_ENCRYPT 0x2F //通信密钥加密失败
#define ERR_COM_TMK_DECRYPT 0x30 //通信密钥解密失败
#define ERR_COM_ASYMMETRYKEY_ENCRYPT 0x31 //非对称密钥加密失败
#define ERR_COM_ASYMMETRYKEY_DECRYPT 0x32 //非对称密钥解密失败
#define ERR_COM_CHECK_MAC 0x33 //密钥MAC校验失败
#define ERR_COM_CHECK_CRC 0x34 //密钥CRC校验失败
#define ERR_COM_GENERATE_MAC 0x35 //计算MAC失败
#define ERR_COM_KEY_NOT_EXIST 0x36 //密钥不存在
#define ERR_COM_GET_KEY 0x37 //获取密钥失败
#define COM_INPUT_TMK1_OK 0x39 //分量一导入成功
#define COM_OUTPUT_TMK1_OK 0x3D //分量一导出成功
#define ERR_COM_TMK_NOT_EXIST 0x3A //通信密钥不存在
#define ERR_COM_DATA_FILL 0x3B //填充数据失败
#define ERR_COM_DATA_TRIM 0x3C //剔除数据失败
#define ERR_COM_GENERATE_RSA 0x3E //产生RSA密钥失败
#define ERR_COM_NOT_IC1 0x3F //非分量一IC卡
#define ERR_COM_NOT_IC2 0x40 //非分量二IC卡
#define ERR_COM_NOT_CLEAR_IC 0x41 //非空白IC卡
#define ERR_COM_TMK_NOT16 0x42 //通讯密钥非16字节长度密钥
#define ERR_COM_IC_POWERON 0x50 //IC卡上电失败
#define ERR_COM_IC_PRESSENT 0x51 //IC卡状态异常
#define ERR_COM_IC_PASSWD 0x52 //IC卡原口令错误
#define ERR_COM_IC_PIN_CHANGE 0x53 //IC卡更改口令失败
#define ERR_COM_IC_WRITE 0x54 //IC卡写数据失败
#define ERR_COM_IC_READ 0x55 //IC卡读数据失败
#define ERR_COM_IC_WRITE_KEY 0x56 //IC卡写密钥失败
#define ERR_COM_IC_READ_KEY 0x57 //IC卡读密钥失败
#define ERR_COM_IC_NOT_SPACE 0x58 //IC卡空间已满
#define ERR_COM_IC_CHECK_CRC 0x59 //IC卡数据CRC校验失败
#define ERR_COM_IC_NEXT 0x5A //有后续IC卡
#define ERR_COM_IC_NOT_NUMBER 0x5B //非NIC卡
#define ERR_COM_IC_GET_ORGANIZA 0x5C //获取IC卡机构信息失败
#define ERR_COM_IC_NO_CARD 0x5D //IC卡不存在
#define ERR_COM_IC_NO_ISSUE 0x5E //IC卡未发卡
#define ERR_COM_UNKNOWN 0x60 //未知错误
#define ERR_USB_NOT_EXIST 0x86 //U盘不存在
#define ERR_KEY_NOT_EXIST 0x87 //密钥不存在
#define ERR_UPDATE_KEY 0x91 //密钥更新失败
#define ERR_GET_OLD_KEYNUM 0x94 //获取旧密钥个数失败
#define ERR_KEY_GENERATE_KEY 0x95 //产生对称密钥失败
#define ERR_KEY_GENERATE_KEYMAC 0x96 //计算密钥MAC失败
#define ERR_KEY_SCHEME 0x97 //密钥方案错误
#define ERR_NOT_FUC 0x98 //此功能不支持
#define ERR_UPDATE_FILE_NOT_EXIST 0xEA //提示升级文件不存在
#define ERR_ADMIN 0xD6 //管理员角色值不合法
#define ERR_MANAGEUSER 0xD7 //用户状态值不合法
#define ERR_REMOTEMANAGE 0xD8 //远程管理已占用
#define ERR_FUNCMANAGE 0xD9 //本地管理已占用
#define ERR_LMK_SHEME 0xC0 //导入LMK变种分量失败
#define ERR_LMK_IESSUE 0xCD //导入主密钥分量失败
#define ERR_CMD_NOT_EXIST 0x0100 //网络命令不存在
#define ERR_HEX_ERR 0x0101 //非十六进制字符
#define ERR_DEC_ERR 0x0102 //非十进制字符
#define ERR_MODE_ERR 0x0103 //模式错误
#define ERR_KEYTYPE_ERR 0x0104 //密钥类型错误
#define ERR_KEYSCHEME_ERR 0x0105 //密钥方案错误
#define ERR_LEN_ERR 0x0106 //数据长度错误
#define ERR_ZMK_NUMBER 0x0107 //密钥成份错误
#define ERR_SAFEFLAG_ERR 0x0108 //安全机制错误
#define ERR_ID_ERR 0x0109 //方案ID错误
#define ERR_DISNUM_ERR 0x010A //离散次数错误
#define ERR_ALGORITHM_ERR 0x010B //算法错误
#define ERR_PINLEN_ERR 0x010C //最大密码长度错误
#define ERR_PINFORMAT_ERR 0x010D //PIN格式错误
#define ERR_PVKI_ERR 0x010E //PIN校验密钥编号
#define ERR_DELIMITER_NOT_EXIST 0x010F //缺少分隔符号";"
#define ERR_HASHFLAG_ERR 0x0110 //哈希算法标识错误
#define ERR_FILLMODE_ERR 0x0111 //填充标识错误
#define ERR_KEYMODE_ERR 0x0112 //获取密钥方式错误
#define ERR_PARAM_NULL 0x0113 //入参为空
#define ERR_PINTRANSLATE_ERR 0x0114 //PIN格式转化错误
#define ERR_VERIFICATION_ERR 0x0115 //验证失败
#define ERR_FILE_NOT_EXIST 0x0116 //配置文件不存在
#define ERR_FILE_READ_FAIL 0x0117 //读取文件失败
#define ERR_FILE_WRITE_FAIL 0x0118 //写文件失败
#define ERR_ENLMK_ERR 0x0119 //LMK加密失败
#define ERR_DELMK_ERR 0x011A //LMK解密失败
#define ERR_ENWORKKEY_ERR 0x011B //工作密钥加密失败
#define ERR_DEWORKKEY_ERR 0x011C //工作密钥解密失败
#define ERR_MD5_ERR 0x011D //MD5失败
#define ERR_GENRSA_ERR 0x011E //产生RSA失败
#define ERR_PKCSSIGN_ERR 0x011F //产生签名失败
#define ERR_PKCSVERIFYSIGN_ERR 0x0120 //签名生成摘要失败
#define ERR_ENRSAPUBLICKEY_ERR 0x0121 //公钥加密失败
#define ERR_DERSAPUBLICKEY_ERR 0x0122 //公钥解密失败
#define ERR_ENRSAPRIKEY_ERR 0x0123 //私钥加密失败
#define ERR_DERSAPRIKEY_ERR 0x0124 //私钥加密失败
#define ERR_GETPUBLICINDEX_ERR 0x0125 //根据索引获取公钥失败
#define ERR_GETPRIINDEX_ERR 0x0126 //根据索引获取私钥失败
//交易错误码集
#define FDCM_SUCCESS 0x0000
#define FDCM_PARAM_NULL 0x1000 //交易入参为空
#define FDCM_FILLMODE_ERR 0x1001
#define FDCM_PCIWRITE_ERR 0x1002
#define FDCM_PCIREAD_ERR 0x1003
#define FDCM_PCILEN_ERR 0x1004
#define FDCM_DATACRC_ERR 0x1005
#define FDCM_MACTYPE_ERR 0x1006
#define FDCM_CMPMAC_ERR 0x1007
#define FDCM_CMPPVV_ERR 0x1008
#define FDCM_CMPOFFSET_ERR 0x1009
#define FDCM_CMPCVV_ERR 0x100A
#define FDCM_CMPCSC1_ERR 0x100B
#define FDCM_CMPCSC2_ERR 0x100C
#define FDCM_CMPCSC3_ERR 0x100D
#define FDCM_MSGLEN_ERR 0x100E
#define FDCM_MSGSEND_ERR 0x100F
#define FDCM_MSGRCV_ERR 0x1010
#define FDCM_LOGTYPE_ERR 0x1011
#define FDCM_OPENDIR_ERR 0x1012
#define FDCM_STAT_ERR 0x1013
#define FDCM_SCANDIR_ERR 0x1014
#define FDCM_FILE_NOT_EXIST 0x1015
#define FDCM_OPENFILE_ERR 0x1016
#define FDCM_READFILE_ERR 0x1017
#define FDCM_STATETYPE_ERR 0x1018
#define FDCM_POPEN_ERR 0x1019
#define FDCM_USBWRITE_ERR 0x101A
#define FDCM_USBREAD_ERR 0x101B
#define FDCM_CARDSTATE_ERR 0x101C
#define FDCM_CHECKHEX_ERR 0x101D
#define FDCM_CMD_ERR 0x101E
#define FDCM_APPMODE_ERR 0x101F
#define FDCM_PKINDEX_ERR 0x1020
#define FDCM_PKALGORITHM_ERR 0x1021
#define FDCM_CHECKDEC_ERR 0x1022
#define FDCM_8LEN_ERR 0x1023
#define FDCM_KEYFLAG_ERR 0x1024
#define FDCM_CHECKLEN_ERR 0x1025
#define FDCM_SALGORITHM_ERR 0x1026
#define FDCM_SPKINDEX_ERR 0x1027
#define FDCM_SPKALGORITHM_ERR 0x1028
#define FDCM_SKEYFALG_ERR 0x1029
#define FDCM_DALGORITHM_ERR 0x102A
#define FDCM_DPKINDEX_ERR 0x102B
#define FDCM_DPKALGORITHM_ERR 0x102C
#define FDCM_DKEYFLAG_ERR 0x102D
#define FDCM_ALGORITHM_ERR 0x102E
#define FDCM_DISALGORITHM_ERR 0x102F
#define FDCM_DISPKINDEX_ERR 0x1030
#define FDCM_DISPKALGORITHM_ERR 0x1031
#define FDCM_DISKEYFLAG_ERR 0x1032
#define FDCM_FLAG_ERR 0x1033
#define FDCM_PVKFLAG_ERR 0x1034
#define FDCM_PVKI_ERR 0x1035
#define FDCM_PINFORMAT_ERR 0x1036
#define FDCM_ZPKALGORITHM_ERR 0x1037
#define FDCM_ZPKLEN_ERR 0x1038
#define FDCM_ZPKFLAG_ERR 0x1039
#define FDCM_USERIDLEN_ERR 0x1040
#define FDCM_4LEN_ERR 0x1041
#define FDCM_CURVEPARA_ERR 0x1042
#define FDCM_CURVELEN_ERR 0x1043
#define FDCM_SEMICOLONS_ERR 0x1044
#define FDCM_HASHTYPE_ERR 0x1045
#define FDCM_NUMBEROFZMK_ERR 0x1046
#define FDCM_KEYLEN_ERR 0x1047
#define FDCM_CMPCSC_ERR 0x1048
#define FDCM_RANDOM_ERR 0x1049
#define FDCM_WRITE_ERR 0x1050
#define FDCM_PCISTATE_ERR 0x1051
#define FDCM_NOT_AUTHORISEC_ERR 0x1052
#define FDCM_AUTHORISEC_ERR 0x1053
#define FDCM_PINLEN_ERR 0x1054
#define FDCM_RANDOMLEN_ERR 0x1055
#define FDCM_DATALEN_ERR 0x1056
#define FDCM_MAC_ERR 0x1057
#define FDCM_ROLE_ERR 0x1058
//交易错误码集工行
//*******************************************************
#define ICBC_ID_ERR 0x9000 //通用指令 指令ID不正确
#define ICBC_KEYCLASS_ERR 0x9001 //通用指令 密钥种类错误
#define ICBC_KEYTYPE_ERR 0x9002//通用指令 密钥类型错误
#define ICBC_KEYLEN_ERR 0x9003 //通用指令 密钥长度错误
//2015,4,21 add
#define ICBC_KEYTEXT_ERR 0x9004//通用指令 密钥密文含有非法字符
#define ICBC_KEYKCI_ERR 0x9005//通用指令密钥的KCI 校验不过
#define ICBC_DATA_ERR 0x9006//通用指令数据含有非法字符
#define ICBC_DATA_LEN_OVER_ERR 0x9007//通用指令数据长度值超过报文8K ,表示少于8k 的数据长度不能支持时才报错.
#define ICBC_DATALEN_ERR 0x9008//通用指令 数据包长度异常
#define ICBC_MSGLEN_OVER_RANGE 0x9009//通用指令 数据包长度异常超过报文8K, 断开连接
#define ICBC_MSGLEN_OVER 0x9010//通用指令 实际接收的报文比数据包长度域长,断开连接
#define ICBC_SNDRCV_TIMEOUT 0x9011//通用指令 实际接收的报文比数据包长度域短,加密机超时,断开连接
//#define ICBC_IDLEN_ERR 0x9020//ID长度错误
#define ICBC_KEYUSE_ERR 0x9021//密钥用途错误
#define ICBC_INCOMPLETE_KEY_ERR 0x9022//非完整密钥
//2015/05/16 nifei add start
#define ICBC_VERIFYSIGN_ERR 0x1501//验证签名失败
#define ICBC_SIGN_ERR 0x1502//签名失败
#define ICBC_SIGNDATALEN_ERR 0x1503//签名数据原文长度错误
#define ICBC_SM2MODE_ERR 0x1504//SM2密钥产生模式错误
#define ICBC_SM3HASHMODE_ERR 0x1505//SM3杂凑模式错误
#define ICBC_IDLEN_ERR 0x1506//ID长度错误
#define ICBC_SIGNLEN_ERR 0x1601//签名值长度错误
#define ICBC_GENSM2KEY_ERR 0x1602//产生SM2 密钥对错误
#define ICBC_SM3HASH_ERR 0x1603//产生SM3 HASH 错误
#define ICBC_GENCSR_ERR 0x1604//产生SM2 证书请求错误
#define ICBC_CERTFORMAT_ERR 0x1605//证书格式错误
#define ICBC_CERTPUBKEY_ERR 0x1606//证书公钥和私钥的公钥部分不匹配
#define ICBC_IPFALG_ERR 0x1701//IP格式标识错误
#define ICBC_IPFORMAT_ERR 0x1702//IP格式错误
#define ICBC_IPISEXIST_ERR 0x1703//IP已存在
#define ICBC_IPCNTISOVER_ERR 0x1704//IP白名单个数已超过上限
#define ICBC_IPWHITEISNULL_ERR 0x1705//IP白名单为空
#define ICBC_IPNOTMATCH_ERR 0x1706//IP地址不匹配
#define ICBC_GETVERSIONINFO_ERR 0x1707//获取加密机版本信息失败
#define ICBC_USERRIGTH_ERR 0x1708//用户权限错误
#define ICBC_MNGIPDEL_ERR 0x1709//管理员IP不可删除
//2015/05/16 nifei add end
#define ICBC_PTR_FORMAT_ERR 0x1001 //D2S_PTR和S2D_PTR,DES_PTR PINBLOCK格式错误,字典只有0,4
#define ICBC_PTR_SPAN_ERR 0x1002 //D2S_PTR和S2D_PTR,DES_PTR 转换前PAN未输入
#define ICBC_PTR_NPAN_ERR 0x1003 //D2S_PTR和S2D_PTR,DES_PTR 转换后PAN未输入
#define ICBC_PTR_END_ERR 0x1004 //D2S_PTR和S2D_PTR,DES_PTR 结尾符号不是;
#define ICBC_PTR_CARDNO_ERR 0x1005 //D2S_PTR和S2D_PTR,DES_PTR卡号不是12-19位
#define ICBC_PASSWDLEN_ERR 0x1006 //DES_RPG 密码长度错
#define ICBC_PASSWD_PINBLOCK_ERR 0x1007//DES_EPD,DES_PTR,DES_PVG 密码,pinblock错或为空
#define ICBC_FORMAT_PAN_ERR 0x1008 //当pin格式不为1时pan不为空
#define ICBC_FORMAT_PAN_DATA_ERR 0x1009 //pin包含非法字符
#define ICBC_FILL_ERR 0x1101 //SM4_MAG和SM4_MAV DES_MPG,MAC数据补位方式错误,字典只有0,1
#define ICBC_DATAFLAG_ERR 0x1102 //SM4_MAG和SM4_MAV DES_MPG,MAC数据块标识错误,字典只有0,1,2,3
#define ICBC_DATA_LENGTH_OVER 0x1103
#define ICBC_MAC_CHECK_ERR 0x1105//DES_MAV,MAC校验失败
#define ICBC_IV_ERR 0x1106//DES_MAG,DES_MAV,SM4_CTT,初始向量错或者所需iv 错误
#define ICBC_DATA_FLAG_ERR 0x1107//DES_MPG,DES_MAG,DES_MAV,DES_ENC,DES_DEC,SM4_MAG,SM4_MAV,SM4_CTT,报文块1,2时,mac 数据不是8/16字节的整数倍(国密为16字节,国际为8字节),或者是补位模式为0- none 或者分组为1-非最后的一个分组时,数据长度不为分组长度的整数倍.
#define ICBC_MAC_CHECK_LEN_ERR 0x1109//SM4_MAV,DES_MAV 国密算法指明MAC校验长度错误,具体字典为4,6,8,0,国际算法指明MAC校验长度错误,具体字典为4,6,8
#define ICBC_ENC_MODE_ERR 0x1201//DES_ENC,DES_DEC,SM4_CTT,加密模式错
#define ICBC_ENC_DATA_ERR 0x1202//DES_ENC,DES_DEC,加密数据错误
#define ICBC_FILL_MODE_ERR 0x1203//DES_ENC,DES_DEC,SM4_CTT补位模式错
#define ICBC_GROUP_MODE_ERR 0x1204//DES_ENC,分组模式错 或者加密数据分组标识错误,字典只有0,1,2
#define ICBC_DKG_USE_ERR 0x1301//KGK 密钥密文中密钥用途第5位到第8位是0080 ,表示KGK
#define ICBC_TEMP_KEY_USE_FIRST_BIT_ERR 0x1302//DES_KPI中间密钥密钥用途第一位为非9
#define ICBC_DISPERSED_DATA_ERR 0x1303//DES_DKG分散数据异常,长度异常或含有非法字符.
#define ICBC_KEY_USE_BIT_ERR 0x1304//DES_KEXKEK 密钥用途第5-8位为非’0000’时,需被导出的密钥的密钥类型与KEK 密钥用途第5-8位不一致
#define ICBC_COMP_ERR 0x1305//DES_KPI ,SM4_KPI分量表示错误,字典只有0,1,2
#define ICBC_COMP_0_TEMP_KEY_ERR 0x1306//DES_KPI ,SM4_KPI分量为0时 ,中间密钥不为全0.
#define ICBC_KEY_TYPE_VALID 0x1307//ZTL key type failed
#define ICBC_KEY_LEN_VALID 0x1308// key len failed
#define ICBC_KEY_TYPE_ERR 0x1401//SM4_KXG 密钥类型错误,字典只有0050,0070
#define ICBC_MAC_NO_MAC 0x0004 //标识MAC 未校验
#define ICBC_MAC_MAG_ERR 0x0006 //MAC生成错误
#define ICBC_DESHASH_ALGORITHM_ERR 0x1220 //散列算法错误
#define ICBC_DESGROUP_DESCRIBE_ERR 0x1221 //分组描述错误只有0,1,2
#define ICBC_INDEX_ERR 0x1108//密钥索引值超出范围
#define ICBC_GENERATE_RANDOM_ERR 0x1222//生成随机数错误
#define ICBC_GENERTE_RANDOM_KEY_ERR 0x1223//产生随机密钥错误
#define ICBC_TRANS_TO_ICBC_ERR 0x1801//把本地密钥转换为ICBC错误
#define ICBC_TRANS_TO_DEFAULT_ERR 0x1802//把工行密钥转换为本地错误
#define ICBC_LMK_TO_KEK_ERR 0x1803//lmk转换为kek错误
#define ICBC_LMK_TO_LMK_ERR 0x1804//lmk转换为lmk错误
#define ICBC_KEK_TO_LMK_ERR 0x1805//kek转换为lmk错误
#define ICBC_ENC_ERR 0x1806//加密错误
#define ICBC_DEN_ERR 0x1807//解密错误
#define ICBC_CPT_KEY_ERR 0x1808//分量合成错误
#define ICBC_GENERATE_KCI_ERROR 0x1809//生成KCI错误
#define ICBC_SEARCH_KEY_ERR 0x1810//查找工行主密钥失败
#define ICBC_SET_KEY_ERR 0x1811//设置工行主密钥错误
#define ICBC_COM_DISPERSE_ERR 0x1812//分散ID卡子密钥错误
#define ICBC_HASH_ERR 0x1813//计算hash错误(主要用于SHA_OWH)
#define ICBC_SHA_CHAIN_VERCTORY_ERR 0x1901//SHA 的CHAIN VERCTORY值错误
#define ICBC_CARD_ID_ERR 0x1902//卡号+卡序列号数据长度错误或者含有非法字符
#define ICBC_CARD_ATC_ERR 0x1903//ATC含有非法字符
#define ICBC_CARD_ARQC_ERR 0x1904//ARQC含有非法字符
#define ICBC_CARD_ARC_ERR 0x1905//ARC含有非法字符
//非对称算法错误标识
//#define ICBC_SM2_MODE_ERR 0x1600//sm2 mode模式错误,数据字典只有0,1,2
//#define ICBC_SM2_HASH_FLAG_ERR 0x1601//sm2 HASH标识错误,数据字典只有0,1
//*******************************************************/
/****************************************************************
#define ICBC_KEY_CHECK_ERR 0x9004 //通用指令 密钥校验
#define ICBC_DATA_ERR 0x9005 //通用指令 数据包异常
#define ICBC_PTR_PAN_ERR 0x1006 //D2S_PTR和S2D_PTR PAN格式错误
#define ICBC_PTR_ACCOUNT_ERR 0x1007 //D2S_PTR和S2D_PTR 转换前PINBLOCK账号校验错误
#define ICBC_PTR_PINBLOCK_ERR 0x1008 //D2S_PTR和S2D_PTR PINBLOCK转换错误
#define ICBC_SM4MAC_DATALENOVER_ERR 0x1103 //SM4_MAG和SM4_MAV 数据长度值超过报文8K
#define ICBC_SM4MAC_DATALEN_ERR 0x1104 //SM4_MAG和SM4_MAV 数据包长度异常
#define ICBC_SM4MAC_MAV_ERR 0x1105 //SM4_MAV MAC校验失败
#define ICBC_SM4MAC_MAG_ERR 0x1106 //SM4_MAV MAC生成错误
#define ICBC_SM4MAC_NO_MAC 0x0004 //标识MAC 未校验
#define ICBC_DES_DATALEN_ERR 0x1201 //DES和3DES数据包长度异常
#define ICBC_DESMAC_FILL_ERR 0x1202 //DES_MAG和DES_MAV MAC数据补位方式错误,字典只有0,1
#define ICBC_DESMAC_DATAFLAG_ERR 0x1203 //DES_MAG和DES_MAV MAC数据块标识错误,字典只有0,1,2,3
#define ICBC_DESMAC_DATALENOVER_ERR 0x1204 //DES_MAG和DES_MAV 数据长度值超过报文8K
#define ICBC_PASSWD_LEN_ERR 0x1205 //随机密码长度错误
#define ICBC_PASSWD_PIN_LEN_ERR 0x1206 //输入密码PIN长度不是4-12
#define ICBC_PASSWD_PIN_END_ERR 0x1207 //输入密码PIN结束符不是;
#define ICBC_DESMAC_MAG_ERR 0x1208 //DES_MAV MAC生成错误
#define ICBC_DESMAC_MAV_ERR 0x1209 //DES_MAV MAC校验失败
#define ICBC_DESMAC_NO_MAC 0x0004 //标识MAC 未校验
#define ICBC_ENC_TO_PINBLOCK_ERR 0x1210 //密码使用PIK密钥加密为PINBLOCK失败
#define ICBC_DEC_PINBLOCK_TO_PLAINTEXT_ERR 0x121A //PINBLOCK密文解密为明文失败
#define ICBC_DESENC_MODE_ERR 0x121B//加密模式错误
#define ICBC_DESFILL_MODE_ERR 0x121C//补位模式错误
#define ICBC_DESGROUP_DESCRIBE_ERR 0x121D//分组描述错误
#define ICBC_DESCOMP_LEN_ERR 0x121E//分量长度错误
#define ICBC_DESCOMP_FLAG_ERR 0x121F//DES分量标识错误
#define ICBC_DESHASH_ALGORITHM_ERR 0x1220 //散列算法错误
#define ICBC_DESLENGTH_ERR 0x1221//指定的随机密码长度不正确
#define ICBC_SM4_DATALEN_ERR 0x1107//SM4数据包长度异常
#define ICBC_SM4KEY_INDEX_ERR 0x1108//密钥索引值超出范围
#define ICBC_SM4LEN_ERR 0x1109//SM4分量长度超出范围
#define ICBC_SM4COMP_FLAG_ERR 0x110A//SM4分量标识错误
**********************************************************************************/
//*************PCI ERROR CODE****************/
//如果加密卡支持奇偶校验不过,仍然返回结果
//那么定义该宏为0x3121,例如工银国际版本
#define ERR_PCI_ODD_CHECK_ERR 0x3121
//如果加密卡奇偶校验不过直接报错
//那么定义该宏为-1
//#define ERR_PCI_ODD_CHECK_ERR -1
//*********** Racal Error Code **************/
#define NO_ERRORS 0x00
#define ERR_VERIFICATION_FAILURE 0x01
#define ERR_VERIFICATION_PIN 0x02
#define ERR_KEYDATA_LENGTH 0x02
#define ERR_INVALID_MESSAGE_TYPE_CODE 0x03
#define ERR_INVALID_KEY_TYPE_CODE 0x04
#define ERR_INVALID_KEY_LENGTH_FLAG 0x05 // 根据标准而来,不可改dwb
#define ERR_INVALID_MESSAGE_BLOCK_NUMBER 0x05 // 根据标准而来,不可改 fuck zcb
#define ERR_INVALID_KEY_LENGTH_CODE 0x06
#define ERR_SOURCE_KEY_PARITY 0x10
#define ERR_DEST_KEY_PARITY 0x11
#define ERR_USER_STORAGE 0x12
#define ERR_MASTER_KEY_PARITY 0x13
#define ERR_LMK_PIN_BLOCK_INVALID 0x14
#define ERR_INPUT_DATA_INVALID 0x15
#define ERR_PRINTER_NOT_READY 0x16
#define ERR_HSM_NOT_AUTHORISED 0x17
#define ERR_FORMAT_NOT_DEFINITION 0x18
#define ERR_DIEBOLD_TABLE_INVALID 0x19
#define ERR_PIN_BLOCK 0x20
#define ERR_USER_STORAGE_INDEX 0x21
#define ERR_ACCOUNT_NUMBER_INVALID 0x22
#define ERR_PIN_FORMAT_INVALID 0x23
#define ERR_INVALID_PIN_LENGTH 0x24
#define ERR_DEC_TABLE 0x25
#define ERR_INVALID_KEY_SCHEMA 0x26
#define ERR_INVALID_KEY_LENGTH 0x27
#define ERR_INVALID_KEY_TYPE 0x28
#define ERR_INVALID_REFERENCE_NUMBER 0x30
#define ERR_SAME_PIN 0X75
#define ERR_INVALID_PRIVATAKEYLENGTH 0x78
#define ERR_DSP_ERR 0x47
#define ERR_DATA_LENGTH 0x80
#define ERR_TRADECMD_NOT_EXIST 0x81 //交易命令不存在
#define ERR_INVALID_DATALENGTH 0x92
#define ERR_DATA_THAN_MODULUS_BIG 0x98 //数据比模大
//***2015-11-11 11:11工银国际M6返回码*******************
#define ERR_INVALID_MODE_FLAG 0x02
#define ERR_INVALID_INPUT_FORMAT 0x03
#define ERR_INVALID_MAC_ALGORITHM 0x04
#define ERR_INVALID_KEY_TYPE_M6 0x05
#define ERR_INVALID_KEY_LENGTH_M6 0x06
#define ERR_INVALID_PADDING_METHOD 0x09
//******************************************************
//0x80~0xc0
//83,84,85,89,90,92,93,99,a1,a7,ab,ac,ad,ae...
#define ERR_USB_NOT_EXIST1 0x83 //U盾不存在
#define ERR_UKEY_LOGIN 0x84 //U盾登录失败
#define ERR_UKEY_MAKE 0x85 //U盾制作失败
#define ERR_UKEY_CZSB 0x89 //操作失败
#define ERR_JSSB 0x90 //解锁失败
#define ERR_KLCW 0x92 //口令错误
#define ERR_YKLCW 0x93 //原口令错误
#define ERR_GHKLSB 0xA1 //口令更改失败
#define ERR_UKEY_FILENULL 0xA7 //密钥备份文件不存在
#define ERR_UKEY_DEEXIST 0x8A//0xAB //数字信封已存在
#define ERR_RKEY_UNABLED 0xAC //非本机发行盾
#define ERR_BKEY_UNABLED 0xAD //非本机备份盾
#define ERR_BKEY_NULL 0xAE //该盾未备份密钥
#define ERR_UKEY_ILLEGAL 0xAF //非法U盾
#define ERR_UKEY_NONEMPTY 0x8B//0x86 //非空盾
/*********** 20141104 nifei add start(工银亚洲) **************/
#define ERR_MEM_ALLOC_FAIL 0x41 //内存申请失败
#define ERR_ZPK_PARITY 0x10 //ZPK错误
#define ERR_ENC_PIN 0x14 //error in encrypted pin
#define ERR_INVALID_SES_KEY 0x08 //invalid message session key or iv
#define ERR_INVALID_NEW_SES_KEY 0x09 //invalid New message session key or iv
#define ERR_KEY_LEN 0x27 //密钥长度错误
#define ERR_NUMERIC_FLAG 0x06 //invalid Numeric Flag
#define ERR_UPPERCASE_FLAG 0x07 //invalid Uppercase Flag
#define ERR_INVALID_AN_PIN_LEN 0x04 //invalid AN-PIN Length
#define ERR_INVALID_AN_PIN_VER_FLAG 0x76 //invalid AN-PIN Verification Flag
#define ERR_INVALID_PRI_KEY_INDEX 0x03 //invalid Private Key index
#define ERR_INVALID_MES_SES_KEY_LEN 0x71 //incorrect Message Session Key Length
#define ERR_SECRET_KEY_LEN 0x78 //secret key length error
#define ERR_INVALID_PUBKEY_ENC_TYPE 0x03 //Invalid public key encoding type
#define ERR_PUB_EXP_LEN 0x06 //Public exponent length error
#define ERR_SUP_PUB_EXP_IS_EVEN 0x08 //Supplied public exponent is even
/*********** 20141104 nifei add end(工银亚洲) **************/
/***********20141013 ywn add(工银国际E0指令错误码)***********/
#define ERR_DATA_FLAG_ERR 0x01//非法报文块标识域
#define ERR_ALGORITHM_MODE_ERR 0x02//非法算法操作模式域
#define ERR_INPUT_FLAG_ERR 0x03//非法输入数据格式域
#define ERR_OUTPUT_FLAG_ERR 0x04//非法输入数据格式域
#define ERR_KEY_TYPE_ERR 0x05//非法密钥类型域
#define ERR_DATA_LEN_ERR 0x06//非法保温长度域
#define ERR_ENC_FLAG_ERR 0x07//非法加解密标识域
#define ERR_FILL_MODE_ERR 0x08//非法填充模式域
#define ERR_FILL_CNT_FLAG_ERR 0x08//非法填充计数模式域
#define ERR_FILL_CHAR_ERR 0x09//填充字符域错误
#define ERR_KEY_SCHEMA_ERR 0x26//密钥方案错误
/***********20141013 ywn add(工银国际E0指令错误码)***********/
#endif
+347
View File
@@ -0,0 +1,347 @@
#ifndef _GLOBAL_H_
#define _GLOBAL_H_
#include <sys/time.h>
#define KEY_0 0x00
#define KEY_1 0x01
#define KEY_2 0x02
#define KEY_3 0x03
#define KEY_4 0x04
#define KEY_5 0x05
#define KEY_6 0x06
#define KEY_7 0x07
#define KEY_8 0x08
#define KEY_9 0x09
#define KEY_A 0x0A
#define KEY_B 0x0B
#define KEY_C 0x0C
#define KEY_D 0x0D
#define KEY_E 0x0E
#define KEY_F 0x0F
#define KEY_POWER 0x11
#define KEY_FUNC 0x12
#define KEY_DEL 0x13
#define KEY_UP 0x04
#define KEY_DOWN 0x01
#define KEY_ESC 0x02
#define KEY_ENTER 0x03
#define KEY_FUNC_3S 0x18
#define KEY_ERROR 0xFF //多重按键错误
#define ITEM_1 7 //菜单项的Menu-ITEM?可以定位到0xF5-0xFF
#define ITEM_2 8
#define ITEM_3 9
#define ITEM_4 10
#define ITEM_5 11
#define ITEM_6 12
#define ITEM_7 13 //菜单项的Menu-ITEM?可以定位到0xF5-0xFF
#define ITEM_8 14
#define ITEM_9 15
#define ITEM_10 16
#define ITEM_11 17
#define ITEM_12 18
#define ITEM_13 19
#define ITEM_14 20
#define ITEM_15 21
#define ITEM_16 22
#define DEALOK 0
#define Admin 0
#define Operator 1
#define Menu_Init_Kao 0x01
#define Menu_Kao_Frame1 0x02
#define Menu_Kao_Frame2 0x03
#define Menu_EXAR 0x04
#define Menu_HYK16Test 0x05
#define Menu_1308Test 0x06
#define Menu_SYD1308_Test_1 0x07
#define Menu_SYD1308_Test_2 0x08
#define Menu_SYD1308_device_manage_1 0x09
#define Menu_SYD1308_device_manage_2 0x0a
#define Menu_SYD1308_lmk_manager_1 0x0b
#define Menu_Kao_Frame3 0xf4
#define Menu_Kao_Frame4 0xf5
#define Menu_CardTest_1 0xf6
#define Menu_CardTest_2 0xf7
#define Menu_Flash 0xf8
#define Menu_Sram 0xf9
#define Menu_Kai_Test 0xfA
#define Menu_Kao_Frame5 0xfB
#define Menu_CardTest 0xFC
#define Menu_CardTest_3 0xFD
#define Menu_Main_LOG 0xFE
#define Menu_Init_Test 0xFF
#define Menu_Login_Manage 0x04
#define Menu_Login_Server 0x05
#define Menu_Manage_AsymmetricalKey 0x06
#define Menu_Manage_ClientIP 0x07
#define Menu_Manage_LMK 0x08
#define Menu_Manage_Operator_1 0x09
#define Menu_Manage_Operator_2 0x0A
#define Menu_Manage_Operator_3 0xB2
#define Menu_Manage_System_1 0x0B
#define Menu_Manage_System_2 0x0C
#define Menu_Manage_Modify_Ethx 0x0D
#define Menu_Manage_SerialPort 0x0E
#define Menu_Manage_Organ 0x68
#define Menu_Manage_KeyType 0x69
#define Menu_Manage_KeyQuery 0x6A
#define Menu_Manage_KeyGenerate 0x99
#define Menu_Manage_KeyGenerate_1 0xA1
#define Menu_Manage_KeyGenerate_2 0xA2
#define Menu_Manage_KeyGenerate_3 0xA3
#define Menu_Manage_KeyGenerate_4 0xA4
#define Menu_Manage_KeyIssue1 0xA5
#define Menu_Manage_KeyIssue2 0xA6
#define Menu_Manage_KeyIssue3 0xA7
#define Menu_Manage_KeyIssue4 0xA8
#define Menu_Manage_KeyChange1 0xA9
#define Menu_Manage_KeyChange2 0xAA
#define Menu_Manage_KeyChange3 0xAB
#define Menu_Manage_KeyInit 0xB3
#define Menu_Manage_LMKIssue 0xC7
#define Menu_Manage_LMKIssue1 0xC8
#define Menu_Manage_LMKIssue2 0xC9
#define Menu_Manage_LMKIssue3 0xCA
#define Packet_Field_Set1 0xCB
#define Menu_Manage_System_3 0xCC
#define Menu_Manage_ClientIP_Menu 0xCD
#define UKey_Make_1 0xB4
#define UKey_Make_2 0xB5
#define UKey_Make_LMK_From_IC_1 0xBC
#define UKey_Make_LMK_From_IC_2 0xBD
#define UKey_Or_IC_ChangePwd_1 0xB6
#define UKey_Or_IC_ChangePwd_2 0xB7
#define UKey_Or_IC_ChangePwd_2l 0xBC
#define UKey_Or_IC_Deblock_1 0xB8
#define UKey_Or_IC_Deblock_2 0xB9
#define UKey_Manage_Operate_1 0xBA
#define UKey_Manage_Operate_2 0xBB
#define Menu_Manage_KeyBackups 0x7A
#define Menu_Manage_KeyChange 0xA0
#define Menu_Manage_KeyStop 0x7B
#define Menu_Manage_KeyDel 0x7C
#define Menu_Manage_Key_1 0x7D
#define Menu_Manage_Key_2 0x7E
#define Menu_Manage_Key_3 0x98
#define Menu_Manage_Key_4 0xAD
#define UD_Make_Manage 0xAC
#define UD_Make_Operator 0xAE
#define UD_Make_Windicate 0xAF
#define Dev_Key_Back_1 0x0F
#define Dev_Key_Back_2 0x10
#define Dev_Key_Back_3 0x11
#define Dev_Key_Back_4 0x12
#define Dev_Key_Recover_1 0x13
#define Dev_Key_Recover_2 0x14
#define Dev_Key_Recover_3 0x15
#define Dev_Key_Generate_1 0x16
#define Dev_Key_Generate_2 0x17
#define Dev_PublicKey_Inport 0x18
#define Dev_PublicKey_Outport_1 0x19
#define Dev_PublicKey_Outport_2 0x1A
#define Dev_UsbKey_Register 0x1B
#define IC_Init_1 0x1C
#define IC_Init_2 0x1D
#define IC_Card_Copy_1 0x1E
#define IC_Card_Copy_2 0x1F
#define IC_Card_Copy_3 0x20
#define IC_Card_Copy_4 0x21
#define IC_Card_Copy_5 0x22
#define IC_Card_Copy_6 0x23
//#define IC_Change_Oper_Passwd_1 0x24
//#define IC_Change_Oper_Passwd_2 0x25
#define IC_Init_Passwd 0x26
#define IC_Make_Net 0x27
#define IC_Make_Operator 0x28
#define IC_Make_Operator_1 0x61
#define IC_Make_Windicate 0x29
#define IC_HSM_Register_1 0x2A
#define IC_HSM_Register_2 0x2B
#define IC_HSM_Cancel_1 0x66
#define IC_HSM_Cancel_2 0x67
#define Init 0x2C
#define Init_1 0x2D
#define Init_2 0x2E
#define Init_3 0x2F
#define Init_4 0x30
#define LMK_Generate 0x31
#define LMK_Move 0x32
#define LMK_Move_1 0x62
#define LMK_Recover_1 0x33
#define LMK_Recover_2 0x34
#define LMK_Recover_3 0x35
#define LMK_Bak_1 0x36
#define LMK_Bak_2 0x37
#define LMK_Bak_3 0x38
#define LMK_Bak_4 0x39
#define LMK_Bak_5 0x60
#define Login_Admin_1 0x3A
#define Login_Admin_2 0x3B
#define Login_Operator_1 0x3C
#define Login_Operator_2 0x3D
#define Login_Windicate_1 0x3E
#define Login_Windicate_2 0x3F
#define Login_Net_1 0x63
#define Login_Net_2 0x64
#define FLogout 0x40
#define System_start 0x41
#define System_Modify_Ethx_1 0x42
#define System_Modify_Ethx_2 0x43
#define System_Modify_Ethx_3 0xC0
#define System_Modify_Ethx_4 0xC1
#define System_Modify_Ethx_5 0xC2
#define System_Modify_Ethx_6 0xC3
#define System_Modify_Ethx_7 0xC4
#define System_Modify_Ethx_8 0xC5
#define System_Modify_Ethx_9 0xC6
#define System_Port 0x44
#define System_Version_Query 0x46
#define System_LMK_KCV_Query 0x9A //查询lmk kcv
#define System_Time_Settings 0x47
#define System_Change_Passwd 0x48
#if 1
#define System_Restore_Factory_1 0x49
#define System_Restore_Factory_2 0x4A
#define System_Restore_Factory_3 0x4B
#define System_Restore_Factory_4 0x4C
#endif
#define System_SerialPort_Settings 0x4D
#define System_SerialPort_Settings_S 0x74
#define System_Upgrade_1 0x4E
#define System_Upgrade_2 0x4F
#define System_Upgrade_3 0x50
#define System_Upgrade_4 0x51
#define System_Power_Off_1 0x52
#define System_Power_Off_2 0x53
#define System_Succeed_Message 0x54
#define System_Fail_Message 0x55
#define System_ClientIP_Add 0x56
#define System_ClientIP_Del_1 0x57
#define System_ClientIP_Del_2 0x58
#define System_ClientIP_Que 0x59
#define SerialPort_Service 0x5A
#define Machine_No_Query 0x5B
#define Network_Service_1 0x5C
#define Network_Service_2 0x5D
#define Network_Service_3 0xBF
#define Network_Service_4 0xBE
#define LMK_Sys_Login 0x5E
#define System_Log 0x5F
#define Work_To_Tmp 0x65
#define KEK_RECOVER 0x66
#define Key_Organ_Add 0x6B
#define Key_Organ_Del 0x6C
#define Key_Organ_Que 0x6D
#define Key_Type_Add 0x6E
#define Key_Type_Del 0x6F
#define Key_Type_Que_1 0x70
#define Key_Type_Que_2 0x7F
#define Key_Query_ByOne_1 0x71
#define Key_Query_ByOne_2 0x81
#define Key_Query_ByMore_1 0x72
#define Key_Query_ByMore_2 0x80
#define Key_Issue_1 0x73
//#define Key_Backups 0x74
//#define Key_Recover 0x75
#define Key_Stop_ByOne 0x76
#define Key_Stop_ByMore 0x77
#define Key_Del_ByOne 0x78
#define Key_Del_ByMore 0x79
#define CardKey_Move_1 0X82 // 83
#define CardKey_Move_2 0x83
#define CardKey_Move_3 0x84
#define CardKey_Move_4 0x85
#define Key_Start_ByOne 0x86
#define Key_Start_ByMore 0x87
#define Key_Issue_2 0x91
#define Key_Issue_3 0x92
#define Key_Issue_4 0x93
#define Key_Issue_5 0x94
#define Packet_Field_Set 0x95
#define Part_Combine_Key 0x96
#define Part_Combine_PIN 0x97
extern int card_flag;
extern unsigned char Frame; //画面号
extern unsigned int MenuItem; //光标所在菜单项
extern unsigned int FreshItem; //记录上一个item
extern unsigned char TO_ADMIN_OR_MOR_FLAG; //初始化后,进入管理程序或编核押程序标志 1 管理程序 0 编核押
extern unsigned char ADMIN_LOCATE_FLAG; //安控员登录定位标志 0:安控员一登录界面 1:安控员二登录界面 2:管理菜单管理员登录界面
extern unsigned char UKEY_MAKE_FLAG;
extern unsigned char MANAGE_UMAKE_FLAG;
extern unsigned char SUPPER_UMAKE_FLAG;
extern unsigned char UKEY_OPERATE_FLAG;
extern unsigned char DEBLOCK_FLAG;
extern unsigned char PWD_CHANGE_FLAG;
extern unsigned char NETLOGIN_FLAG; //网络服务登录1:普通交易登录2:授权状态登录
extern unsigned char LMK_RECOVER_FLAG; //恢复主密钥定位标记1:恢复分量一2:恢复分量二3:恢复分量二
extern unsigned char LMK_BAK_FLAG; //备份主密钥定位标记1:备份分量一2:备份分量二3:备份分量三
extern unsigned char LMK_GENERATE_FLAG; //产生主密钥方式1:新生成2:分量恢复
extern unsigned char LMK_FLAG; //判断LMK 是否正常0:正常1:不正常
extern unsigned char MAKE_OPR_FLAG; //制作密钥管理员1:密钥管理员一2:密钥管理员二
extern unsigned char AUTHORIZATION_LOGIN; //网络交易授权状态1:授权登录0:配置管理员登录
extern unsigned char NetService_Change; //交易状态切换0,非切换状态1,普通到授权,2,授权到普通
extern unsigned char cmp_combine;
extern unsigned char MenuItem_num; //返回到上一帧菜单项被选中号,优先级高
extern unsigned char EXIT_Frame; //返回到上一帧界面号 比Function优先级高
extern unsigned char EXIT_Frame_Flag[8]; //存放一个功能菜单的EXIT_Frame
extern unsigned char MenuItem_num_Flag[8]; //存放一个功能菜单的MenuItem_num 返回到上一帧菜单项被选中号
extern unsigned char NETWARE_NUM; //网卡号
extern unsigned char XTZMY_Function_Num; //区分是第一次开机生成系统主密钥 0 /管理菜单选择生成系统主密钥 1
extern unsigned char Store_Card_Num; //备份下级行密钥的IC卡编号 默认为1
extern unsigned char TIMEOUT; //串口数据传输超时标志位 TIMEOUT=1表示超时
extern unsigned int TIMENUM_NUM; //超时时间倍数计数
extern unsigned int Timenum; //超时时间倍数计数
extern unsigned char INPUT_OR_OUTPUT_KEY_BIT; //导入或导出的密钥位数 2:两位 3:三位
extern int ExData; //全局变量,单字节共享时用
extern int totalnum;
extern unsigned int QueryCnt, QueryPtr, DispAddr;
extern unsigned char LED_STATUS;
extern unsigned char LED_ERROR;
extern unsigned char LEDSTATE;
// extern unsigned char *Buffer[22]; //用户行显示内容的指针全局变量
extern unsigned char *Buffer[44]; //用户行显示内容的指针全局变量
extern unsigned char DataTmp[256]; //全局变量,多字节共享
extern unsigned char Buf[256];
extern unsigned char inbuf[20];
extern unsigned char Int_flag;
extern unsigned char NUM_SERIER_REV;
extern int tlock;
extern unsigned char func_3s_flag;
extern unsigned char keybuff[20];
extern int bufindex;
extern int AllKeyLen;
extern unsigned char *g_key_buff;
extern unsigned char power;
extern int SerialPort_PID; //密钥管理串口进程ID
extern int PCfd;
extern unsigned char IC_Copy_tmp[12 * 1024];
extern char IC_Copy_role[17];
extern char IC_Copy_roleLen;
#endif /* GLOBAL_H_ */
+2284
View File
File diff suppressed because it is too large Load Diff
+58
View File
@@ -0,0 +1,58 @@
#ifndef _LCD_DISPLAY_H_
#define _LCD_DISPLAY_H_
void buffer_init();
void buffer_flush(unsigned char LineBit);
//void write_databyte(unsigned char databyte);
void write_databyte(unsigned int databyte);
void LcdSetPage(unsigned char Page);
void LcdSetCol(unsigned char Col);
void LcdClear();
void initLcdSystem(void);
void PrintASC8(unsigned char Page,unsigned char Col,unsigned char *Asc8,unsigned char Flag);
void PrintASC16(unsigned char Page,unsigned char Col,unsigned char *Asc16,unsigned char Flag);
void PrintHANZI(unsigned char Page,unsigned char Col,unsigned char *HanZi,unsigned char Flag);
void PrintString8(unsigned char Page,unsigned char Col,unsigned char * *ValBuf,unsigned char Num,unsigned char Flag);
void PrintString16(unsigned char Page,unsigned char Col,unsigned char * *ValBuf,unsigned char Num,unsigned char Flag);
void PrintFormatStr(unsigned char Page,unsigned char Col,unsigned char * *CodeStr,unsigned char Num,unsigned char Flag);
void SetItemCursor(unsigned int * CurItem,unsigned int AllItem,unsigned char Key);
void SetItemCursor_DownAndUp(unsigned int * CurItem,unsigned int AllItem,unsigned char Key);
void PrintEmptyLine(unsigned char Line,unsigned char Type);
void DispPrefix(unsigned char ItemCnt,unsigned int first_Item,unsigned char start_page,unsigned char place_len,unsigned char start_col);
void DispPrefix_NoDot(unsigned char ItemCnt,unsigned int first_Item,unsigned char start_page,unsigned char place_len,unsigned char start_col);
void DispPrefix_oneormore_col(unsigned int ItemCnt,unsigned int first_Item,unsigned char start_page,unsigned char start_col);
void ExitToMenu();
void DispDigits(unsigned char Page,unsigned char Col,unsigned char * Value,unsigned char Len,unsigned char Flag);
void DispVersion(unsigned char Page,unsigned char Col,unsigned char * Value,unsigned char Len,unsigned char Flag);
void DISP_TURN_ON_FLAG(unsigned char page,unsigned char col,unsigned char * FLAG,unsigned char REVERSE_Flag);
void ASCToBIN(unsigned char *ASCBuf,unsigned char ASCLen,unsigned char *BINBuf);
void BINToASC(unsigned char *BINBuf,unsigned char BINLen,unsigned char *ASCBuf);
void BCDToBIN(unsigned char *BCDBuf,unsigned char BCDLen,unsigned char *BINBuf);
void BINToBCD(unsigned char *BINBuf,unsigned char BINLen,unsigned char *BCDBuf);
void RefreshArrowPos(unsigned char CurSel,unsigned char AllSel,unsigned char first_page,unsigned char second_page);
void AddIntoBuf(unsigned char *ValBuf,unsigned char BufLen,unsigned char *CurLen,unsigned char Key);
void DelFromBuf(unsigned char *ValBuf,unsigned char BufLen,unsigned char *CurLen);
void Disp_error_no(void);
void Disp_digit_number(unsigned char * addr,unsigned char disp_len,unsigned char page,unsigned char col);
unsigned char Check_IP_Result(unsigned char * IP_value,unsigned char FLAG);
void Disp_IP_ADDR(unsigned char page,unsigned char col,unsigned char * IP_addr,unsigned char FLAG,unsigned char REVERSE_Flag);
void DISP_SYNC_FLAG(unsigned char page,unsigned char col,unsigned char * FLAG,unsigned char REVERSE_Flag);
void Display_Date(unsigned char page,unsigned char col,unsigned char * Date,unsigned char FLAG,unsigned char REVERSE_Flag);
void Display_Time(unsigned char page,unsigned char col,unsigned char * Time,unsigned char FLAG,unsigned char REVERSE_Flag);
void DispDigits_Reverse(unsigned char Page,unsigned char Col,unsigned char * Value,unsigned char Len,unsigned char Flag,unsigned char REVERSE_FLAG);
void Disp_LogSize(unsigned char Page,unsigned char Col,unsigned char * Value);
void Disp_num_failure(unsigned char Page,unsigned char Col,unsigned char * Value);
unsigned char Right_Or_Error_Time(unsigned char * time_value);
unsigned char Right_Or_Error_LongTime(unsigned char * time_value);
unsigned char Right_Or_Error_HourAndMinute(unsigned char * time_value);
void function_key_3s(unsigned char Key,unsigned char * key_flag_addr);
void function_key_first(unsigned char * key_flag_addr);
void Rev_Error_dealwith(int len);
void DispDigits2(unsigned char Page,unsigned char Col, unsigned char *Value,unsigned char Len);
#endif /* LCD_DIS_H_ */
+24
View File
@@ -0,0 +1,24 @@
#ifndef __PANEL_DEAL_H__
#define __PANEL_DEAL_H__
void chip_main();
void chip_main_reset();
unsigned int get_lrc(unsigned char * send_data,int len);
void rsp_ok_common(unsigned char rsp_ok_data);
void rsp_ok_data(unsigned char * rev_data,int len);
void rsp_ok(void);
void rsp_err(unsigned char type,unsigned char error);
void rsp_err_data(unsigned char type,unsigned char * buff,int len);
int chip_request(unsigned char tag,unsigned char * send_data,int len,unsigned char * ack);
void serialSendRsp();
void rsp_ok_common(unsigned char response_data);
void Frame_Menu_Manage_LMKIssue();
void Frame_Menu_Manage_LMKIssue1();
void Frame_Menu_Manage_LMKIssue2();
void Frame_Menu_Manage_LMKIssue3();
#endif
+71
View File
@@ -0,0 +1,71 @@
#ifndef __PUBLIC_H__
#define __PUBLIC_H__
/*
* ¹«¹²°üº¬µÄÍ·Îļþ
*/
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <stdlib.h>
#include <signal.h>
#include <time.h>
#include <ctype.h>
#include <pwd.h>
#include <crypt.h>
#include <shadow.h>
#include <math.h>
#include <fcntl.h>
#include <dlfcn.h>
#include <stdarg.h>
#include <dirent.h>
#include <sys/ioctl.h>
#include <sys/vfs.h>
#include <sys/epoll.h>
#include <pthread.h>
#include <sched.h>
#include <stdbool.h>
#include <assert.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <sys/time.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <termios.h>
#include <sys/wait.h>
#include <netdb.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <sys/sem.h>
#include <linux/lp.h>
#include <scsi/sg.h>
#include <linux/capability.h>
#include <openssl/rsa.h>
#include<openssl/pem.h>
#include<openssl/err.h>
#include <openssl/evp.h>
#include <openssl/x509.h>
#include <openssl/pkcs12.h>
#include <openssl/bio.h>
#include <openssl/engine.h>
#include "define.h"
#ifdef MEMWATCH
#include "memwatch.h"
#endif
#endif
+27
View File
@@ -0,0 +1,27 @@
#ifndef _SERIAL_C_
#define _SERIAL_C_
//´íÎó´úÂë
#define E_UART_SIZE 0x50 //Unsupported data size
#define E_UART_parity 0x51 //Unsupported parity
#define E_UART_stop 0x52 //Unsupported stop bits
#define E_UART_Setup1 0x53 //SetupSerial 1
#define E_UART_Setup3 0x54 //SetupSerial 3
#define E_UART_OPEN 0x55 //Serial OPEN Error
#define E_UART_SPEED 0x56 //Serial OPEN Error
extern int icdev;
int serial_open(int baud_rate);
int serial_write(unsigned char * data,int len);
int serial_read(unsigned char * data,int len);
int serial_read_once(unsigned char * data,int len);
int serial_flush(unsigned char LineBit);
//int serial_write_buff(unsigned char page,unsigned char col,unsigned char dat);
int serial_write_buff(unsigned int page,unsigned int col,unsigned int dat);
int serial_buff_init();
int get_hmi_version(unsigned char *data, int len);
int serial_buff_black();
int serial_buff_init();
#endif
+13
View File
@@ -0,0 +1,13 @@
#ifndef _SHAM_H_
#define _SHAM_H_
int InitKeyCard(int semid);
int initsem(int *semid, key_t semkey);
int V(int Semid, int flag);
int P(int Semid, int flag, int senconds);
int CreateIpc();
int DeleteIpc();
int get_efd_lock(void);
int put_efd_lock(void);
#endif
+13
View File
@@ -0,0 +1,13 @@
#ifndef __USB_H__
#define __USB_H__
int usbWrite(int sg_fd, unsigned char * pData,unsigned int nLength,int nTimeOut);
int usbRead(int sg_fd, unsigned char * pData,unsigned int nLength,int nTimeOut);
#endif
+15
View File
@@ -0,0 +1,15 @@
#ifndef _USB_OPERATE_H_
#define _USB_OPERATE_H_
#include "define.h"
int OpenUDisk(int id, int * fd);
int scsi_inquiry(int sg_fd, unsigned char * pData);
int CD_SendPackage(int sg_fd, TPCCmd tPCCmd, unsigned char * pData);
int CD_RecvPackage(int sg_fd, unsigned char * pData, unsigned int * lRecvLen);
int CloseUsb(int fd);
int USBRead(int sg_fd, unsigned char * pData,unsigned int nLength,int nTimeOut);
int USBWrite(int sg_fd, unsigned char * pData,unsigned int nLength,int nTimeOut);
#endif
+15
View File
@@ -0,0 +1,15 @@
#ifndef _UTILS_H
#define _UTILS_H
#include "public.h"
int killprg(char *prgname,int sig);
int CreateIdFile(char* pszProgName);
void stopPrg(char* pszProgName);
int TestPrgStat(char* pszProgName);
int DaemonStart();
int ScanDir(const char *pszDirName, struct dirent ***pstruDirentList);
#endif