1507 lines
46 KiB
C
1507 lines
46 KiB
C
#ifndef __DEFINE__H__
|
||
#define __DEFINE__H__
|
||
|
||
#include <stdint.h>
|
||
|
||
|
||
#include <stdio.h>
|
||
#include <string.h>
|
||
#include <stdlib.h>
|
||
#include <stdint.h>
|
||
#include "asc16.h"
|
||
#include "asc8.h"
|
||
#include "hzk16.h"
|
||
#include "lcddisplay.h"
|
||
#include <signal.h>
|
||
#include "utils.h"
|
||
#include "sham.h"
|
||
#include "serial.h"
|
||
#include <unistd.h>
|
||
#include "IC_API.h"
|
||
#define OPEN_HYK16_FAIL 0x10 //打开并初始化HYK16卡失败
|
||
#define RESET_HYK16_FAIL 0x11 //重置核验卡失败
|
||
#define CHECK_HYK16_SELF_FAIL 0x12 //卡自检失败
|
||
#define GET_HYK16_ID_FAIL 0x13 //获取卡的序列号失败
|
||
#define GET_HYK16_MK_FAIL 0x14 //生成银行MK失败
|
||
#define READ_HYK16_MK_FAIL 0x15 //读入银行MK失败
|
||
#define HYK16_Check_Key_Pay_FAIL 0x16 //card 核验失败
|
||
#define HYK16_Add_Key_Pay_FAIL 0x17 //增发支付密码器失败
|
||
#define HYK16_Update_MK_FAIL 0x18 //更新主密钥失败
|
||
#define HYK16_Conver_MK_FAIL 0x19 //转换银行主密钥失败
|
||
|
||
|
||
//#define thread_num 64
|
||
#define thread_num 20
|
||
#define thread_num_speedtest 64
|
||
|
||
//#define EX_thread_num 32
|
||
#define EX_thread_num 16
|
||
#define EX_thread_num_speedtest 64
|
||
|
||
#define EX_SM4_NUM 8
|
||
#define EX_AES_NUM 4
|
||
#define EX_DES_NUM 4 //DES 3DES公用
|
||
|
||
|
||
|
||
|
||
|
||
#define FUNC_MODE 0 //function test mode
|
||
#define DIAG_MODE 1
|
||
|
||
#define SN_TEST 0
|
||
#define HRNG_FAST_TEST 1
|
||
#define HRNG_ALL_TEST 2
|
||
#define ALG_TEST 3
|
||
#define SDRAM_TEST 4
|
||
#define SRAM_RD_TEST 5
|
||
#define SRAM_WR_TEST 6
|
||
#define FLASH_RD_TEST 7
|
||
#define FLASH_WR_TEST 8
|
||
#define ALG_SM1_TEST 10
|
||
#define ALG_SSF33_TEST 11
|
||
#define ALG_SM4_TEST 12
|
||
#define ALG_AES_TEST 13
|
||
#define ALG_DES_TEST 14
|
||
#define ALG_TDES_TEST 15
|
||
#define ALG_IDEA_TEST 16
|
||
#define ALG_RSA_TEST 17
|
||
#define ALG_SM2_TEST 18
|
||
#define ALG_SM3_TEST 19
|
||
|
||
|
||
#define _ECCref_MAX_BITS 512
|
||
#define _ECCref_MAX_LEN ((_ECCref_MAX_BITS+7)/8)
|
||
#define _ECCref_MAX_DATALEN 5120
|
||
|
||
//接口相关的定义
|
||
|
||
typedef struct _version_struct{
|
||
unsigned char software_version[64];
|
||
unsigned char check[8];
|
||
unsigned char hardware_version[32];
|
||
unsigned char SN_id[32];
|
||
}version_struct;
|
||
|
||
typedef struct _S_TRAN_ARG{
|
||
unsigned char *idata;
|
||
unsigned char*odata;
|
||
unsigned int ilen;
|
||
unsigned int olen;
|
||
unsigned int rlen;
|
||
unsigned int chan;
|
||
}S_TRAN_ARG;
|
||
typedef struct _cos_struct{
|
||
unsigned char HSC32K1Number;
|
||
unsigned char SSX1510Number;
|
||
unsigned char FreeData1;
|
||
unsigned char FreeData2;
|
||
}cos_struct;
|
||
typedef struct _EXAR_STRUCT{
|
||
uint8_t bridge0;
|
||
uint8_t bridge1;
|
||
uint8_t SM4;
|
||
uint8_t AES;
|
||
uint8_t DES;
|
||
}exar_struct;
|
||
|
||
|
||
typedef struct _THREAD_ARG{
|
||
int fd;
|
||
unsigned int thread_no;
|
||
unsigned int Arith;
|
||
unsigned int arith_mode;
|
||
unsigned int datalen;
|
||
}THREAD_ARG;
|
||
|
||
|
||
#define STANDARD_919 0x00
|
||
#define STANDARD_99 0x01
|
||
#define STANDARD_UNIONPAY 0x02
|
||
|
||
#define MAX_PCIBUF_SIZE (8192*2)
|
||
#define PCI_PACKAGE_HEAD_LEN (32)
|
||
|
||
//----算法定义----//
|
||
|
||
|
||
|
||
|
||
#define ARITH_SM1_SPEED 0x01
|
||
#define ARITH_SSF33_SPEED 0x02
|
||
#define ARITH_SM4_SPEED 0x03
|
||
#define ARITH_DES_SPEED 0x04
|
||
#define ARITH_3DES_SPEED 0x05
|
||
//soft arith
|
||
#define ARITH_IDEA_SPEED 0x06
|
||
#define ARITH_AES_SPEED 0x07
|
||
|
||
//----算法定义----//
|
||
#define ARITH_DES 0x01
|
||
#define ARITH_3DES 0x02
|
||
#define ARITH_IDEA 0x03
|
||
#define ARITH_SM1 0x04
|
||
#define ARITH_AES 0x05
|
||
#define ARITH_SM4 0x06
|
||
#define ARITH_SSF33 0x07
|
||
|
||
#define W_NET ARITH_SM1
|
||
#define W_NET_2 ARITH_3DES
|
||
#define S_NET ARITH_SM1
|
||
#define S_NET_2 ARITH_3DES
|
||
#define N_NET 0x00
|
||
|
||
|
||
#define ARITH_DES_LEN 0x04
|
||
#define ARITH_3DES_LEN 0x05
|
||
|
||
#define CMD_SM4 0x801
|
||
#define CMD_AES 0x802
|
||
#define CMD_DES 0x803
|
||
#define CMD_TDES 0x804
|
||
|
||
/* Cmd1 命令类型*/
|
||
#define PCI_SYMMETRY_ED 0x01//对称算法加解密
|
||
#define PCI_ASYMMETRY_ED 0x02//非对称算法加解密
|
||
#define PCI_HASH 0x03//哈希算法
|
||
#define PCI_SYMTOSYM_ENC 0x04//对称算法转加密
|
||
#define PCI_SYMTOASYM_ENC 0x05//对称与非对称算法转加密
|
||
#define PCI_ARITHMETIC_TEST 0x06//算法正确性检验
|
||
#define PCI_SYMKEY_GENERATION 0x07//对称密钥随机生成
|
||
#define PCI_ASYMKEY_GENERATION 0x08//非对称密钥随机生成
|
||
#define PCI_SYMKEY_INPORT_EXPORT 0x09//对称密钥导入导出
|
||
#define PCI_ASYMKEY_INPORT_EXPORT 0x0A//非对称密钥导入导出
|
||
#define PCI_SIGN_SIGNCHECK 0x0B//雷卡体系签名验签
|
||
#define PCI_PIN_DEAL 0x0C//PIN处理
|
||
#define PCI_DEVICE_MANAGE 0x0D//设备管理
|
||
#define PCI_LMK_MANAGE 0x0E//主密钥管理
|
||
#define PCI_HARDWARE_DETECTION 0x0F//硬件自检
|
||
#define PCI_SM2_SYNC 0x13//密钥协商
|
||
#define PCI_AN_PIN 0x81//专用指令:AN_PIN
|
||
#define PCI_ICBC 0x82//工总行指令
|
||
|
||
|
||
|
||
|
||
/* Cmd2 对称算法加解密*/
|
||
#define PCI_DES_ENCRYPT 0x11 //DES加密
|
||
#define PCI_DES_DECRYPT 0x12 //DES解密
|
||
#define PCI_DES3_ENCRYPT 0x13 // 3DES加密
|
||
#define PCI_DES3_DECRYPT 0x14 // 3DES解密
|
||
#define PCI_IDEA_ENCRYPT 0x15 //IDEA加密
|
||
#define PCI_IDEA_DECRYPT 0x16 //IDEA解密
|
||
#define PCI_AES_ENCRYPT 0x17 //AES加密
|
||
#define PCI_AES_DECRYPT 0x18 //AES解密
|
||
#define PCI_SM4_ENCRYPT 0x19 //SM4加密
|
||
#define PCI_SM4_DECRYPT 0x1A //SM4解密
|
||
#define PCI_SM1_ENCRYPT 0x1B //SM1加密
|
||
#define PCI_SM1_DECRYPT 0x1C //SM1解密
|
||
|
||
/* Cmd2 非对称算法加解密*/
|
||
#define SM2_ENCRYPT 0x21//SM2公钥加密
|
||
#define SM2_DECRYPT 0x22//SM2私钥解密
|
||
#define RSA_ENCRYPT 0x23//RSA公钥加密
|
||
#define RSA_DECRYPT 0x24//RSA 私钥解密
|
||
|
||
/* Cmd2 哈希*/
|
||
#define SM3_HASH 0x31//用SM3做哈希
|
||
#define SHA1_HASH 0x32
|
||
#define SHA256_HASH 0x33
|
||
#define MD5_HASH 0x34
|
||
#define SM3_USERID_HASH 0x35
|
||
|
||
|
||
|
||
|
||
|
||
/* Cmd2 对称算法转加密*/
|
||
#define SYMTOSYM_ENC 0x41
|
||
|
||
/* Cmd2 对称与非对称算法转加密*/
|
||
#define SYMTOSM2_ENC 0x51//对称算法到SM2算法转加密
|
||
#define SYMTORSA_ENC 0x52//对称算法到RSA算法转加密
|
||
#define SM2TOSYM_ENC 0x53//SM2到对称算法
|
||
#define RSATOSYM_ENC 0x54//RSA到对称算法
|
||
|
||
/* Cmd2 */
|
||
#define SM4_ENCRYPT_TEST 0x61//SM4加密测试
|
||
#define SM4_DECRYPT_TEST 0x62//SM4解密测试
|
||
|
||
/* Cmd2 对称密钥随机生成*/
|
||
#define SYMKEY_GENERATION 0x71
|
||
|
||
/* Cmd2 非对称密钥随机生成*/
|
||
#define SM2KEY_GENERATION 0x81//SM2公私钥对生成
|
||
#define RSAKEY_GENERATION 0x82//RSA公私钥对生成
|
||
|
||
/* Cmd2 对称密钥导入导出*/
|
||
#define SYMKEY_CIPHER_INPORT 0x91//对称密钥密文导入
|
||
#define SYMKEY_CIPHER_EXPORT 0x92//对称密钥密文导出
|
||
|
||
|
||
|
||
|
||
/* Cmd2 非对称密钥导入导出*/
|
||
#define SM2PUBCKEY_CLEAR_INPORT 0xA1//SM2公钥明文导入
|
||
#define SM2PUBKEY_CLEAR_EXPORT 0xA2//SM2公钥明文导出
|
||
#define SM2PRIKEY_CIPHER_INPORT 0xA3//SM2私钥密文导入
|
||
#define SM2PRIKEY_CIPHER_EXPORT 0xA4//SM2私钥密文导出
|
||
#define SM2KEY2_INPORT 0xA5//SM2密钥对导入
|
||
#define SM2KEY2_EXPORT 0xA6//SM2密钥对导出
|
||
#define RSAPUBCKEY_CLEAR_INPORT 0xA7//RSA公钥明文导入
|
||
#define RSAPUBKEY_CLEAR_EXPORT 0xA8//RSA公钥明文导出
|
||
#define RSAPRIKEY_CIPHER_INPORT 0xA9//RSA私钥密文导入
|
||
#define RSAPRIKEY_CIPHER_EXPORT 0xAA//RSA私钥密文导出
|
||
#define RSAKEY2_INPORT 0xAB//RSA密钥对导入
|
||
#define RSAKEY2_EXPORT 0xAC//RSA密钥对导出
|
||
|
||
/* Cmd2 雷卡体系签名验签*/
|
||
#define RSA_SIGN_GENERATION 0xB1//RSA签名
|
||
#define RSA_SIGN_CHECK 0xB2//RSA验签
|
||
#define SM2_SIGN_GENERATION 0xB3//SM2签名
|
||
#define SM2_SIGN_CHECK 0xB4//SM2验签
|
||
|
||
/* Cmd2 PIN处理*/
|
||
#define PINBLOCK_CHANGE_ENC 0xC1//PINBLOCK转加密
|
||
#define PVV_CALCULATION 0xC2//PVV计算
|
||
#define CVV_CHCEK 0xC3//PVV验证
|
||
#define PIN_OFFSET_CALCULATION 0xC4//PIN offset计算
|
||
#define PIN_OFFSET_CHECK 0xC5//PIN offset验证
|
||
#define PIN_PINBLOCK_CALCULATION 0xC6//生成PIN及PINBLOCK
|
||
#define PIN_PRINT 0xC7//PIN打印
|
||
|
||
/* Cmd2 设备管理*/
|
||
#define DEVICE_INITIALIZE 0xD1//设备初始化
|
||
#define DEVICE_ACCESS_LIMIT 0xD2//设备访问权限
|
||
#define DEVICE_DETECTION 0xD3//设备自检
|
||
#define SM2_CURVE_NITIALIZE 0xD4//SM2曲线初始化
|
||
#define RANDOM_GENERATION 0xD5//生成随机数
|
||
#define WRITE_DEVICE_INFORMATION 0xD6//写设备信息
|
||
#define READ_DEVICE_INFORMATION 0xD7//读设备信息
|
||
#define READ_VERSION_INFORMATION 0xD8//读版本信息
|
||
#define READ_COS_INFORMATION 0xDF//读硬件设备信息
|
||
|
||
/* Cmd2 主密钥管理*/
|
||
#define GENERATE_COMPONENT 0XE0
|
||
#define LMK_GENERATION 0xE1//生成系统主密钥
|
||
#define LMK_LOAD 0xE2//装载系统主密钥
|
||
#define LMK_BACKUP 0xE3//备份系统主密钥
|
||
#define LMK_RECOVER 0xE4//恢复系统主密钥
|
||
#define LMK_SEED_DESTORY 0xE5//销毁系统主密钥种子
|
||
#define CKEY_DISPERSE 0xE6//通信密钥分散成n个分量
|
||
#define DISFACTOR_KEY_DISPERSE 0xE7//带分散因子密钥分散
|
||
#define CKEY_CLEARCOMPONENT_COMBINE 0xE8//通信密钥n个明文分量合成
|
||
#define COMBINEFACTOR_COMPONENT_COMBINE 0xE9//带合成因子分量合成
|
||
#define S_COMPONENT_DFACTOR_DISPERSE 0xEA//单分量带分散因子分散
|
||
#define LMK_REPLACE 0xEB//主密钥更新
|
||
#define TEST_LMK_LOAD 0xEC//加载测试主密钥
|
||
#define WORKSPACE_LMKSTATUS_CHECK 0xED//工作区主密钥自检
|
||
#define TEMPAREA_LMKSTATUS_CHECK 0xEE//临时区主密钥自检
|
||
#define LMK_DESTORY 0xEF//销毁主密钥
|
||
|
||
/* AN_PIN */
|
||
#define AN_PIN_GENERATION 0X01//AN-PIN生成
|
||
#define AN_PIN_DECRYPT 0X02//AN-PIN解密
|
||
|
||
/* Cmd2 硬件自检*/
|
||
#define HARDWARE_DETECTION 0xF1//硬件自检
|
||
#define ARITHINTERFACE_SYMM 0xF2//对称算法接口
|
||
#define ARITHINTERFACE_SM2 0xF3//SM2算法接口
|
||
#define ARITHINTERFACE_RSA 0xF4//RSA算法接口
|
||
#define PCICOMMUNICATION 0xF5//PCI通讯测试
|
||
#define STORE_TESET_CMD2 0xF6//存储设备读写测
|
||
|
||
/* Cmd2 工总行指令*/ // 20141107 add by sgf
|
||
#define ICBC_CALC_KCV 0x01 //计算KCV
|
||
#define ICBC_TRANSTOICBC 0x02 //转加密到ICBC格式
|
||
#define ICBC_TRANSFROMICBC 0x03 //从ICBC转加密到自有格式
|
||
#define ICBC_IMPORTDISP 0x04 //导入分量
|
||
#define ICBC_IMPORTLMK 0x05 //导入ICBC主密钥
|
||
#define ICBC_LMKTEST_CUR 0x06 //ICBC主密钥检测
|
||
|
||
/*加密或者解密*/
|
||
#define ENCRYPT 1
|
||
#define DENCRYPT 0
|
||
|
||
/*加密模式*/
|
||
#define INVALID 0x00 //无效模式
|
||
#define ECB 0x01 //ECB模式
|
||
#define CBC 0x02 //CBC 模式
|
||
#define CFB 0x03 //CFB 模式
|
||
#define OFB 0x04 //OFB模式
|
||
|
||
|
||
|
||
#define _Rotl(_x, _y) (((_x) << (_y)) | ((_x) >> (32 - (_y))))
|
||
|
||
|
||
|
||
//20141008 sgf
|
||
//----模式定义----// // for SymmArithinterface
|
||
#define ECB_ENC 0x00
|
||
#define ECB_DEC 0x01
|
||
#define CBC_ENC 0x02
|
||
#define CBC_DEC 0x03
|
||
#define CFB_ENC 0x04
|
||
#define CFB_DEC 0x05
|
||
#define OFB_ENC 0x06
|
||
#define OFB_DEC 0x07
|
||
|
||
#define _RSAref_MAX_BITS 2048
|
||
#define _RSAref_MAX_LEN ((_RSAref_MAX_BITS + 7)/8)
|
||
#define _RSAref_MAX_PBITS ((_RSAref_MAX_BITS + 1)/2)
|
||
#define _RSAref_MAX_PLEN ((_RSAref_MAX_PBITS + 7)/8)
|
||
|
||
|
||
typedef struct
|
||
{
|
||
unsigned int bits;
|
||
unsigned char modulus[_RSAref_MAX_LEN];
|
||
unsigned char exponent[_RSAref_MAX_LEN];
|
||
}RSArefPubKey_st;
|
||
|
||
typedef struct
|
||
{
|
||
unsigned int bits;
|
||
unsigned char modulus[_RSAref_MAX_LEN];
|
||
unsigned char publicExponent[_RSAref_MAX_LEN];
|
||
unsigned char exponent[_RSAref_MAX_LEN];
|
||
unsigned char prime[2][_RSAref_MAX_PLEN];
|
||
unsigned char primeExponent[2][_RSAref_MAX_PLEN];
|
||
unsigned char coefficient[_RSAref_MAX_PLEN];
|
||
}RSArefPriKey_st;
|
||
|
||
|
||
typedef struct
|
||
{
|
||
RSArefPubKey_st PubKey;
|
||
RSArefPriKey_st PriKey;
|
||
}RSArefKeyPair_st;
|
||
|
||
|
||
|
||
|
||
|
||
typedef struct tTransSymmAsymm
|
||
{
|
||
unsigned char LMKIndex; // 主密钥索引
|
||
unsigned char ProtectArith; // 保护算法
|
||
unsigned char *SymmKeyOrIndex; // 指向对称密钥或其索引(SymmKeyLen=4)
|
||
unsigned char SymmKeyLen; // 对称密钥长度
|
||
unsigned char SymmArith; // 对称算法
|
||
unsigned char AppMode;
|
||
unsigned char Scheme;
|
||
unsigned char *AsymmKeyOrIndex;
|
||
unsigned char AsymmKeyLen;
|
||
unsigned char *DataIn;
|
||
unsigned int DataInLen;
|
||
unsigned char *IV;
|
||
unsigned char *DataOut;
|
||
unsigned int DataOutLen;
|
||
}tTransSymmAsymm;
|
||
|
||
typedef struct // ECC(SM2)签名
|
||
{
|
||
unsigned int len;
|
||
unsigned char r[_ECCref_MAX_LEN]; // 签名的r部分
|
||
unsigned char s[_ECCref_MAX_LEN]; // 签名的s部分
|
||
}ECCSignnature_st;
|
||
|
||
typedef struct // RSA签名
|
||
{
|
||
unsigned int Len;
|
||
unsigned char SignValue[_RSAref_MAX_LEN];
|
||
}RSArefSignData_st;
|
||
|
||
|
||
|
||
|
||
/*Device Managing*/
|
||
typedef struct _DEVICEINFO{
|
||
unsigned char IssuerName[40];
|
||
unsigned char DeviceName[16];
|
||
unsigned char DeviceSerial[16];
|
||
unsigned int DeviceVersion;
|
||
unsigned int StandardVersion;
|
||
unsigned int AsymAlgAbility[2];
|
||
unsigned int SymAlgAbility;
|
||
unsigned int HashAlgAbility;
|
||
unsigned int BufferSize;
|
||
}DEVICEINFO;
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
//------------------------------------------------//
|
||
|
||
|
||
|
||
|
||
typedef struct _S_DES_ARG{
|
||
unsigned char *key;
|
||
unsigned char *idata;
|
||
unsigned char *odata;
|
||
unsigned char *iv;
|
||
unsigned int key_len;
|
||
unsigned int len;
|
||
unsigned int rlen;
|
||
unsigned int key_index; //for key in key ram of card when 0 key form outside, when 1-256 key from key ram
|
||
unsigned int enc; // 1 enc : 0 dec
|
||
unsigned int mode; // 1 CBC : 0 ECB
|
||
unsigned int chan;
|
||
}S_EX_ARG;
|
||
|
||
//结构体定义
|
||
typedef struct
|
||
{
|
||
unsigned int bits;
|
||
unsigned char x[_ECCref_MAX_LEN]; // ECC公钥参数x
|
||
unsigned char y[_ECCref_MAX_LEN]; // ECC公钥参数y
|
||
}ECCrefPublicKey_st;
|
||
|
||
typedef struct
|
||
{
|
||
unsigned int bits; // 密钥位长(256位)
|
||
unsigned char K[_ECCref_MAX_LEN]; // ECC私钥
|
||
}ECCrefPrivateKey_st;
|
||
|
||
typedef struct // ECC(SM2)密钥对
|
||
{
|
||
ECCrefPublicKey_st PubKey;
|
||
ECCrefPrivateKey_st PriKey;
|
||
}ECCrefKeyPair_st;
|
||
|
||
// sgf 2014.5.7 增加SM2算法密文结构体
|
||
typedef struct
|
||
{
|
||
unsigned char x[_ECCref_MAX_LEN];
|
||
unsigned char y[_ECCref_MAX_LEN];
|
||
unsigned char M[32];
|
||
unsigned int L;
|
||
unsigned char C[_ECCref_MAX_DATALEN]; // C不 能 大 于 1 36字节
|
||
}ECCCipher_st;
|
||
|
||
|
||
|
||
|
||
// 曲线定义
|
||
#define _USER_Fp 0x0000 // 用户指定的曲线参数,存放于RAM接口
|
||
#define _ISTECC_Fp_160 0x0001 // 信安推荐的160位曲线
|
||
#define _NIST_Fp_192 0x0002 // NIST推荐的192位曲线
|
||
#define _NIST_Fp_224 0x0003 // NIST推荐的224位曲线
|
||
#define _NIST_Fp_256 0x0004 // NIST推荐的256位曲线
|
||
#define _OSCCA_Fp_192 0x0005 // 国家密码局针对WAPI推荐的192位曲线
|
||
#define _OSCCA_Fp_256_Old 0x0006 // 国家密码局较早推荐的256位曲线
|
||
#define _OSCCA_Fp_256_New 0x0007 // 国家密码局最新推荐的256位曲线
|
||
|
||
|
||
/*错误代码*/
|
||
#define RET_PCI_SUCCESS (0x00)
|
||
#define ERR_PCI_CARDTIMEOUT (0x6A) //密押卡处理超时
|
||
#define ERR_CARDWRITE 0x6B //写密押卡错误
|
||
#define ERR_CARDREAD 0x6C //读密押卡错误
|
||
#define ERR_CARDBANKNO 0x6D //行号已满
|
||
#define ERR_OPENPCI 0x6E //密押卡打开失败
|
||
#define ERR_CARDLEN 0x6F //卡数据长度错误
|
||
#define ERR_DATACRC 0x68 //数据包CRC错误
|
||
#define ERR_API_INPARA 0x69 //API输入参数错误
|
||
#define ERR_MODE_OR_IVLEN 0x6A //模式与向量长度不匹配
|
||
#define ERR_HW_TEST 0x67 //自检
|
||
|
||
|
||
|
||
// 随机数头文件
|
||
#define RANDOM_RANDOMNESS_CIRCLE 1000
|
||
#define RANDOM_RANDOMNESS_LEN 1024 //1024bit
|
||
#define RANDOM_RANDOMNESS_BLOCK 977 //8*8 //8*8*1024bit
|
||
#define RANDOM_RANDOMNESS_TOTAL_LEN (RANDOM_RANDOMNESS_LEN*RANDOM_RANDOMNESS_BLOCK)
|
||
#define RANDOM_SPEED_CIRCLE 10000
|
||
#define RANDOM_SPEED_LEN 128
|
||
#define RANDOM_SPEED_BUFF_LEN (1024*124)
|
||
|
||
//判断是否是雷卡体系与金卡体系
|
||
#define RACAL_CARD
|
||
#define LMK_GC_DEFAULT_PROTECT_INDEX 1 //本地保护LMK金卡默认索引号
|
||
|
||
|
||
extern int g_hPCI1;
|
||
extern int g_hPCI2;
|
||
|
||
extern int mutual_speedtest_card0;
|
||
extern int mutual_speedtest_card1;
|
||
|
||
|
||
//define ErrCode
|
||
#define ERR_RLEN -11 //rlen from api err but it should not happen
|
||
#define ERR_DATA -12 //data cmp err
|
||
#define ERR_STD -13 //standard test fail
|
||
#define ERR_SPD -14 //speed too low
|
||
#define ERR_RAND -15 //randomness not ok
|
||
|
||
|
||
|
||
#define RANDOM_RANDOMNESS_LEVEL 0.97 //0.97 for factory 0.981 for GM test
|
||
|
||
|
||
|
||
|
||
#define SYMALG_RUN_CIRCLE 50
|
||
//#define SYMALG_RUN_CIRCLE 10000
|
||
#define SYMALG_SPEED_CIRCLE 2000
|
||
#define EX_SYMALG_SPEED_CIRCLE 20000
|
||
|
||
#define SYMALG_MAX_CIRCLE 5000
|
||
|
||
|
||
//#define SYMALG_MAX_LEN (0x800-256) //modify by grn 0321
|
||
#define SYMALG_MAX_LEN (1024*11+512) //modify by grn
|
||
#define SYMALG_MAX_MOD (SYMALG_MAX_LEN+1)
|
||
|
||
//#define EX_SYMALG_MAX_LEN (4096-128)
|
||
#define EX_SYMALG_MAX_LEN (8192)
|
||
|
||
#define RSA_RUN_CIRCLE 1000
|
||
#define RSA_SPEED_CIRCLE 1000
|
||
|
||
#ifdef CARD_DEBUG
|
||
#define RSA_MAX_CIRCLE 5000
|
||
#else
|
||
#define RSA_MAX_CIRCLE 3000 //modify by grn 0321
|
||
#endif
|
||
|
||
#define SM2_RUN_CIRCLE 500
|
||
#define SM2_SPEED_CIRCLE 5000
|
||
//#define SM2_SPEED_CIRCLE 10000
|
||
|
||
#ifdef CARD_DEBUG
|
||
#define SM2_MAX_CIRCLE 10000
|
||
#else
|
||
#define SM2_MAX_CIRCLE 10000 //modify by grn 0321
|
||
#endif
|
||
|
||
#define HASHALG_MAX_LEN (4096)
|
||
#define HASHALG_MAX_MOD (HASHALG_MAX_LEN+1)
|
||
|
||
#define HASHALG_RUN_CIRCLE 1000
|
||
|
||
#ifdef CARD_DEBUG
|
||
#define HASHALG_MAX_CIRCLE 1000
|
||
#else
|
||
#define HASHALG_MAX_CIRCLE 1000000
|
||
#endif
|
||
#define HASHALG_SPEED_CIRCLE 1000
|
||
|
||
|
||
|
||
|
||
|
||
/* ----------SPEED_TH-------------- */
|
||
|
||
#define RSA1024_DEC_SPEED_TH 5700//5703//2300.0 //2600 | need to set this param to 2300 when SSX41 working at 105MHz
|
||
#define RSA1024_ENC_SPEED_TH 35000//37501//5500.0
|
||
|
||
#define RSA1408_DEC_SPEED_TH 1000//1094//30.0
|
||
#define RSA1408_ENC_SPEED_TH 29000//30042//700.0
|
||
|
||
#define RSA1536_DEC_SPEED_TH 2400//2470//25.0
|
||
#define RSA1536_ENC_SPEED_TH 25000//26276//600.0
|
||
|
||
#define RSA1984_DEC_SPEED_TH 0//10.0
|
||
#define RSA1984_ENC_SPEED_TH 0//350.0
|
||
|
||
#define RSA2048_DEC_SPEED_TH 1200//1254//400.0 //450.0 | need to set this param to 400 when SSX41 working at 105MHz
|
||
#define RSA2048_ENC_SPEED_TH 14000//15916//300.0
|
||
|
||
#define SM2_DEC_SPEED_TH 8000
|
||
#define SM2_ENC_SPEED_TH 8000
|
||
|
||
#define SM2_SIGN_SPEED_TH 30000
|
||
#define SM2_VERIFY_SPEED_TH 30000
|
||
|
||
|
||
#define SM3_SPEED_TH 0
|
||
//软算法
|
||
#define IDEA_SPEED_TH 60 //95
|
||
#define AES_SPEED_TH 110 //204
|
||
|
||
|
||
//0个盾芯片
|
||
#define SM1_SPEED_TH_0 0 // 0
|
||
#define SM4_SPEED_TH_0 100 // 120
|
||
#define DES_SPEED_TH_0 110 // 130
|
||
#define TDES_SPEED_TH_0 50 // 60
|
||
#define SSF33_SPEED_TH_0 0 // 0
|
||
|
||
|
||
//32盾芯片
|
||
#define SM1_SPEED_TH_32 180 //220
|
||
#define SM4_SPEED_TH_32 180 //220
|
||
#define DES_SPEED_TH_32 180 //220
|
||
#define TDES_SPEED_TH_32 180 //200
|
||
#define SSF33_SPEED_TH_32 180 //220
|
||
|
||
|
||
//64盾芯片
|
||
#define SM1_SPEED_TH_64 265 //4//337
|
||
#define SM4_SPEED_TH_64 265 //341
|
||
#define DES_SPEED_TH_64 265 //345
|
||
#define TDES_SPEED_TH_64 265 //343
|
||
#define SSF33_SPEED_TH_64 265 //337
|
||
|
||
|
||
//EX_ARITH
|
||
#define EX_SM4_SPEED_7035 4212 //4680.98*0.9//5800
|
||
#define EX_AES_SPEED_7035 2157 //2930*0.9//4000
|
||
#define EX_DES_SPEED_7035 4115 //5513.18*0.9//5800
|
||
#define EX_TDES_SPEED_7035 3328 //3698*0.9//4400
|
||
|
||
#define EX_SM4_SPEED_7030 3000 //33340*0.9//3200
|
||
#define EX_AES_SPEED_7030 2049 //2277*0.9//2500
|
||
#define EX_DES_SPEED_7030 2440 //2399*0.9//2600
|
||
#define EX_TDES_SPEED_7030 990 //951*0.9//1000
|
||
|
||
|
||
|
||
|
||
#define WORD "="
|
||
|
||
#define PING1 "ping -I 192.168.1.1 192.168.1.11 -c 5 -w 30"
|
||
#define PING2 "ping -I 192.168.1.2 192.168.1.22 -c 5 -w 30"
|
||
#define PING3 "ping -I 192.168.2.1 192.168.2.11 -c 5 -w 30"
|
||
#define PING4 "ping -I 192.168.2.2 192.168.2.22 -c 5 -w 30"
|
||
#define PING5 "ping -I 192.168.3.1 192.168.3.11 -c 5 -w 30"
|
||
#define PING6 "ping -I 192.168.3.2 192.168.3.22 -c 5 -w 30"
|
||
#define PING7 "ping -I 192.168.4.1 192.168.4.11 -c 5 -w 30"
|
||
#define PING8 "ping -I 192.168.4.2 192.168.4.22 -c 5 -w 30"
|
||
#define PING9 "ping -I 192.168.5.1 192.168.5.11 -c 5 -w 30"
|
||
#define PING10 "ping -I 192.168.5.2 192.168.5.22 -c 5 -w 30"
|
||
#define PING11 "ping -I 192.168.6.1 192.168.6.11 -c 5 -w 30"
|
||
#define PING12 "ping -I 192.168.6.2 192.168.6.22 -c 5 -w 30"
|
||
#define PING1_IPV6 "ping6 ::192.168.10.8 -c 5 -w 30"
|
||
#define PING2_IPV6 "ping6 ::192.168.11.8 -c 5 -w 30"
|
||
#define PING3_IPV6 "ping6 ::192.168.12.8 -c 5 -w 30"
|
||
#define PING4_IPV6 "ping6 ::192.168.13.8 -c 5 -w 30"
|
||
#define PING5_IPV6 "ping6 ::192.168.14.8 -c 5 -w 30"
|
||
#define PING6_IPV6 "ping6 ::192.168.15.8 -c 5 -w 30"
|
||
#define PING7_IPV6 "ping6 ::192.168.16.8 -c 5 -w 30"
|
||
#define PING8_IPV6 "ping6 ::192.168.17.8 -c 5 -w 30"
|
||
#define PING9_IPV6 "ping6 ::192.168.18.8 -c 5 -w 30"
|
||
#define PING10_IPV6 "ping6 ::192.168.19.8 -c 5 -w 30"
|
||
#define PING11_IPV6 "ping6 ::192.168.20.8 -c 5 -w 30"
|
||
#define PING12_IPV6 "ping6 ::192.168.21.8 -c 5 -w 30"
|
||
|
||
|
||
/***********************单片机处理出现的错误,非密押机发送过来的错误***********/
|
||
#define R_ACK_PWD_ERROR 0xC1 //确认口令错误 //
|
||
#define CHECK_IP_RESULT_ERROR 0xC2 //IP地址格式错误 //
|
||
#define CHECK_MASK_RESULT_ERROR 0xC6 //掩码格式错误 //
|
||
#define CHECK_GATEWAY_RESULT_ERROR 0xC7 //网关格式错误 //
|
||
#define CHECK_DNS_RESULT_ERROR 0xC8 //DNS格式错误 //
|
||
#define CHECK_TIME_RESULT_ERROR 0xC9 //日期格式错误 //
|
||
#define INIT_IC_CARD_FAILURE 0xCA //初始化IC卡失败
|
||
#define R_ACK_SYSTEM_BANK_KEY_ERROR 0xCB //确认系统行号错误
|
||
#define IP_SET_ERROR 0xff //网关错误
|
||
#define INIT_IC_CARD_FAILURE 0xCA //初始化IC卡失败
|
||
#define CHECK_IP_SAME 0xCC //不能设置为本机IP
|
||
|
||
#define OPT_NUM_TWO 2
|
||
#define OPT_NUM_FOUR 4
|
||
|
||
|
||
#define BUFFISZE 1024
|
||
#define KEYVALLEN 100
|
||
|
||
|
||
//常用变量的宏定义
|
||
|
||
#define NO_ERROR 0
|
||
#define ERROR_FALSE -1
|
||
#define ERROR_SYSTEM -2
|
||
#define MAX_PATH_LEN 128
|
||
#define MAX_STR_LEN 128
|
||
#define MAX_BUFFER_LEN 8192
|
||
#define MAX_SEPERATE_NUM 100
|
||
|
||
#define MSG_LEN_MAX 4096
|
||
#define MSG_HEAD_L 8
|
||
#define MSG_LEN_L 2
|
||
#define MSG_CMD_L 2
|
||
#define MSG_TAIL_L 2
|
||
#define MSG_CRC_L 2
|
||
#define MSG_NODATA_L (MSG_HEAD_L+MSG_TAIL_L+MSG_LEN_L+MSG_CMD_L+MSG_CRC_L) //减去数据位长度的报文长度
|
||
|
||
|
||
#define SYS_IP_LEN 16
|
||
#define KEY_COUNT 24
|
||
#define SYS_SN_LEN 13
|
||
#define PCI_DEVNO_LEN 32
|
||
|
||
#define INQ_REPLY_LEN 96
|
||
#define INQ_CMD_CODE 0x12
|
||
#define INQ_CMD_LEN 6
|
||
|
||
|
||
#define MAX_FILE_DESCRPT 20000 /** 最大文件描述符个数,也即可以处理的最大设备连接数*/
|
||
#define MAX_ONLINE_CLIENT 6000 /** 最大在线客户端连接数*/
|
||
|
||
#define MAX_THREAD_PRIORITY 5 /*线程优先级*/
|
||
#define REFRESH_CLIENT_TIME (36*60*60) /** 刷新客户端连接时间间隔*/
|
||
|
||
#define TCP_DATA_LENGTH 8192
|
||
|
||
#define PRINT_DATA_LENGTH 2048
|
||
|
||
#define PRINTER_READY 0
|
||
#define PRINTER_NOT_READY 1
|
||
|
||
#define E_TYPE_SYS 0x01 //系统错误
|
||
|
||
#define MAX_MSG_COUNT 600
|
||
|
||
#define MAX_ICBCCOMMAND_COUNT 11
|
||
#define ICBCCOMMAND_LENGTH 7
|
||
#define ICBC_HEAD_LENTH 32
|
||
#define HSM_HEAD_LENGTH 32
|
||
|
||
#define COMMON_MSG 0
|
||
#define ICBC_MSG 1
|
||
|
||
#define HIGH_PROPERTY 1
|
||
|
||
#define LISTEN_FD 1
|
||
#define SOCKET_FD 2
|
||
|
||
//#define THREAD_NUM 20
|
||
#define MAX_MACDATA_LENGTH 1024 //最大MAC数据长度
|
||
#define MAX_INPUTDATA_LENGTH 1024 //最大输入数据长度
|
||
#define MAX_OUTPUTDATA_LENGTH 1024 //最大输出数据长度
|
||
|
||
|
||
#define SCSI_TIMEOUT 2000
|
||
#define SCSI_WRITE10_CMD 0x2A
|
||
#define SCSI_READ10_CMD 0x28
|
||
|
||
#define KEY_INPUT_ERROR 0x02
|
||
|
||
#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 BANDRATE 115200 //波特率
|
||
#define RESEND 5 //未收到的重发次数
|
||
#define PRE_DELAY 4 //每次发送接收之间的时间间隔,4ms
|
||
|
||
//报文层
|
||
#define STX 0x02
|
||
#define ETX 0x03
|
||
|
||
//应用层
|
||
#define REQUEST 0x00 //请求
|
||
#define RESPONSE 0x80 //响应
|
||
// TAG
|
||
#define TAG_GENERATE_LMK 0x01 //生成系统主密钥
|
||
#define TAG_SYSTEM_SHUTDOWN 0x02 //系统关机
|
||
#define TAG_DISP_INFO 0x03 //显示警告、错误信息
|
||
#define TAG_QUERY_STATUS 0x04 //查询程序、密押机状态
|
||
#define TAG_IC_STATUS_QUERY 0x05 //IC卡状态查询
|
||
#define TAG_CHECK_PWD_STATUS 0x06 //密码核对状态
|
||
#define TAG_LOGIN_SYSTEM 0x07 //登录系统
|
||
#define TAG_ACK_INIT 0x08 //确认初始化
|
||
#define TAG_BACK_N_IC 0x09 //备份n号IC卡
|
||
#define TAG_START_MOR_SERVER 0x0A //进入编核压服务
|
||
#define TAG_N_OPER_LOGIN 0x0B //n号安控员登陆
|
||
#define TAG_OPER_LOGIN 0x0C //管理员登陆
|
||
#define TAG_AUTHORIZATION_LOGIN 0x3F //授权登录
|
||
#define TAG_CHECK_INT 0x0D //初始化...
|
||
#define TAG_QUERY_CONN_NO 0x0E //查询编核押连接数
|
||
#define TAG_GOTO_ADMIN 0x0F //从编核压返回管理模式
|
||
#define TAG_QUERY_CONN_STATUS 0x10 //查询编核押连接状态
|
||
#define TAG_MYJ_MONIOR 0x65 //查询密押机状态
|
||
|
||
#define TAG_LOGOUT 0x11 //退出登录
|
||
#define TAG_IC_COPY 0x12 //IC卡拷贝
|
||
#define TAG_CHANGE_IC_CARD_PWD 0x13 //更改管理员IC口令
|
||
#define TAG_INIT_IC_CARD 0x14 //初始化IC卡
|
||
#define TAG_SET_SYS_PARA 0x15 //系统参数设置
|
||
#define TAG_SET_SYS_VERIFYCODE 0x16 //远程控制标识设置
|
||
|
||
#define TAG_ADD_CLIENT_IP 0x17 //增加客户IP
|
||
#define TAG_DELETE_CLIENT_IP 0x18 //删除客户IP
|
||
#define TAG_GET_CLIENT_IP 0x19 //获取客户IP列表
|
||
#define TAG_MODIFY_ETH_N 0x1A //网卡n参数设置
|
||
#define TAG_RESTORE_FACTORY_SETTINGS 0x1B //恢复出厂设置
|
||
#define TAG_MODIFY_SYS_PWD 0x1C //更改系统口令
|
||
#define TAG_SERIALPORT_SETTINGS 0x1D //密钥管理端串口设置
|
||
#define TAG_SERIALPORT_GETTINGS 0x43
|
||
#define TAG_ADD_SYNC_IP 0x1E //增加同步IP
|
||
#define TAG_DELETE_SYNC_IP 0x1F //删除同步IP
|
||
#define TAG_GET_SYNC_IP 0x20 //获取同步IP列表
|
||
|
||
#define TAG_RESTORE_N_IC_MASK_KEY 0x21 //恢复nIC卡系统主密钥
|
||
#define TAG_ENTER_RES_POWERON 0x22 //按确认键重新启动
|
||
#define TAG_GET_ETH_N_PARAM 0x23 //网卡n参数获取
|
||
#define TAG_GET_SYS_PARAM 0x24 //获取系统参数
|
||
#define TAG_OUT_WORK_FLIE 0x25 //导出工作日志
|
||
#define TAG_GET_SYSTEM_TIME 0x26 //获取系统时间
|
||
#define TAG_SET_SYSTEM_TIME 0x27 //设置系统时间
|
||
#define TAG_IC_CARD_UPDATE 0X28 //管理员IC卡升级
|
||
#define TAG_GET_VERIFYCODE 0x29 //获取远程控制标识
|
||
#define TAG_UPDATE_SYSTEM_BYUSB 0x2A //USB系统升级
|
||
#define TAG_GENERATE_DEVKEY 0x2B //产生设备密钥
|
||
#define TAG_DEVKEY_BACK 0x2C //备份设备密钥
|
||
//#define TAG_IC_STATUS_QUERY 0x2D //判断IC卡状态
|
||
#define TAG_PORT_SETTINGS 0x2E //设置端口号
|
||
#define TAG_SERIALPORT_SERVICE_START 0x2F //开启PC端串口服务
|
||
#define TAG_SERIALPORT_SERVICE_STOP 0x30 //关闭PC端串口服务
|
||
#define TAG_SYSTEM_UPGRADE 0x31 //系统升级
|
||
#define TAG_IC_MAKE_NET 0x32 //制作网络管理员IC卡
|
||
#define TAG_IC_MAKE_OPERATOR 0x33 //制作串口管理员IC卡
|
||
#define TAG_IC_MAKE_WINDICATE 0x34 //制作普通操作员IC卡
|
||
#define TAG_IC_PASTE 0x35 //IC卡粘贴
|
||
#define TAG_IC_HSM_REGISTER 0x36 //IC卡注册加密机
|
||
#define TAG_IC_HSM_CANCEL 0x45 //IC卡注销加密机
|
||
#define TAG_GET_SYS_PORT 0x37 //获取网络交易端口号
|
||
#define TAG_SET_SYS_PORT 0x38 //设置网络交易端口号
|
||
#define TAG_GET_SYS_LOG 0x39 //获取系统日志
|
||
#define TAG_SET_SYS_LOG 0x3A //设置系统日志
|
||
#define TAG_DISPERSE_LMK 0x3B //分散系统主密钥种子
|
||
#define TAG_LMK_BACK 0x3C //备份系统主密钥种子分量
|
||
#define TAG_LMK_RECOVER 0x3D //恢复系统主密钥种子分量
|
||
#define TAG_MOVE_LMK 0x3E //加载主密钥
|
||
#define TAG_LMK_TEST 0x41 //加载主密钥
|
||
#define TAG_GET_HSMCODE 0x40 //获取加密机设备号
|
||
#define TAG_GET_LMK_GENERATE_FLAG 0x42 //获取加密机产生主密钥状态
|
||
#define TAG_WORK_TO_TMP 0x44 //工作密钥由工作区主密钥到临时去主密钥转加密
|
||
|
||
#define TAG_KEY_ORGAN_ADD 0x46 //增加机构
|
||
#define TAG_KEY_ORGAN_DEL 0x47 //删除机构
|
||
#define TAG_KEY_ORGAN_QUE 0x48 //查看机构
|
||
#define TAG_KEY_TYPE_ADD 0x49 //增加类型
|
||
#define TAG_KEY_TYPE_DEL 0x4A //删除类型
|
||
#define TAG_KEY_TYPE_QUE 0x4B //查看类型
|
||
#define TAG_KEY_QUERY_BYMORE 0x4C //查看批量密钥
|
||
#define TAG_KEY_QUERY_BYONE 0x4D //查看单个密钥
|
||
#define TAG_KEY_ISSUE2 0x4E //密钥分发中的密钥合成
|
||
#define TAG_KEY_BACKUPS 0x4F //密钥备份
|
||
#define TAG_KEY_RECOVER 0x50 //密钥恢复
|
||
#define TAG_KEY_STOP_BYMORE 0x51 //停用批量密钥
|
||
#define TAG_KEY_STOP_BYONE 0x52 //停用单个密钥
|
||
#define TAG_KEY_DEL_BYMORE 0x53 //删除批量密钥
|
||
#define TAG_KEY_DEL_BYONE 0x54 //删除单个密钥
|
||
#define TAG_CARDKEY_MOVE 0x55 //加载卡片主控密钥
|
||
#define TAG_PACKET_FIELD_SET 0x56 //报文域设置
|
||
#define TAG_SET_OLD_KEYNUM 0x57 //设置保留老密钥的个数
|
||
#define TAG_KEY_CHANGE_BYMORE 0x58 //批量更新密钥
|
||
#define TAG_KEY_CHANGE_BYONE 0x59 //单个更新密钥
|
||
#define TAG_KEY_PRINT 0x60 //打印对称密钥分量
|
||
#define TAG_KEY_GENERATE_SYMMETRY 0x61 //产生对称密钥
|
||
#define TAG_KEY_GENERATE_RSA 0x62 //产生RSA密钥
|
||
#define TAG_KEY_GENERATE_SM2 0x63 //产生SM2密钥
|
||
#define TAG_KEY_ISSUE 0x64 //先锋主控密钥合成
|
||
|
||
#define TAG_UMAKE_MANAGE_FIRST 0x70 //制作管理员一级盾
|
||
#define TAG_UMAKE_MANAGE_SECOND 0x71 //制作管理员二级盾
|
||
#define TAG_UMAKE_MANAGE_THIRD 0x72 //制作管理员三级盾
|
||
#define TAG_UMAKE_BACKUP 0x73 //备份盾制作
|
||
#define TAG_UMAKE_ISSUE 0x74 //发行盾制作
|
||
#define TAG_ICMAKE_ISSUE 0x75 //发行卡制作
|
||
#define TAG_ICCARD_DEBLOCK 0x77 //IC卡解锁
|
||
#define TAG_UKEY_DEBLOCK 0x78 //U盾解锁
|
||
#define TAG_UKEY_CHANGE_PWD 0x76 //更改U盾口令
|
||
#define TAG_UKEY_CHANGE_MPWD 0x7D //更改U盾管理口令
|
||
#define TAG_IC_CHANGE_MPWD 0x7E //更改IC卡管理口令
|
||
|
||
#define TAG_UKEY_OUT_SYMMETRY 0x79 //U盾导出对称密钥分量
|
||
#define TAG_UKEY_IN_SYMMETRY 0x7A //U盾分量合成对称密钥
|
||
#define TAG_UKEY_OUT_DENVELOPE 0x7B //U盾导出数字信封
|
||
#define TAG_UKEY_IN_DENVELOPE 0x7C //U盾导入数字信封
|
||
#define TAG_ADD_ROUTE 0x80 //添加路由
|
||
|
||
#define TAG_DELETE_ROUTE 0x81 //删除路由
|
||
|
||
#define TAG_QUERY_ROUTE 0x82 //查询路由
|
||
#define TAG_LMK_ISSUE 0x83 //LMK固定分量录入
|
||
#define TAG_LMK_ISSUE3 0x84 //LMK固定分量录入
|
||
#define TAG_PACKET_TYPE_SET 0x85 //报文类型设置
|
||
#define TAG_PACKET_TYPE_GET 0x86 //获取报文类型
|
||
|
||
#define TAG_INIT_FUNCMANAGEUSER 0x87 //本地用户状态初始化
|
||
|
||
//U盾备份所有应用密钥
|
||
//U盾恢复所有应用密钥
|
||
|
||
|
||
//表2:错误类别定义
|
||
#define E_TYPE_SYS 0x01 //系统错误
|
||
#define E_TYPE_IC 0x02 //IC卡操作错误
|
||
#define E_TYPE_IC_RW 0x03 //IC卡读写错误
|
||
#define E_TYPE_TRANS 0x04 //传输错误
|
||
#define E_TYPE_HANDLE 0x05 //处理错误
|
||
#define E_TYPE_ENCRYPT_CARD 0x06 //密押卡操作错误
|
||
#define E_TYPE_ENCRYPT_RW 0x07 //密押卡读写错误
|
||
#define E_TYPE_FILE_RW 0x08 //文件读写错误
|
||
|
||
//(1)运行、处理结果
|
||
#define R_NO_RESPONSE 0xFC //无响应
|
||
#define R_TX_ERR 0xFB //STX ETX 错误
|
||
#define R_LEN_ERR 0xFA //LEN 错误
|
||
#define R_ERROR 0xF9 //处理出错,错误码在数据域中
|
||
#define R_SUCCESS 0xF8 //成功处理请求数据
|
||
#define R_BUSY 0xF7 //程序/设备忙
|
||
#define R_SYS_ERR 0xF6 //系统错误
|
||
#define R_PWD_ERR 0xF5 //密码错误
|
||
#define R_LRC_ERR 0xF4 //LRC错误
|
||
#define R_TAG_ERR 0xF3 //TAG不匹配
|
||
#define R_PWD_LOCK 0xF2 //口令已锁
|
||
|
||
//(2)警告信息
|
||
#define W_SYS_FAILURE 0xEF //系统故障警告
|
||
#define W_CONFIG_FILE_LOST 0xEE //配置文件丢失警告
|
||
#define W_PROGRAM_FAILURE 0xED //程序运行异常
|
||
|
||
//(3)IC状态
|
||
#define IC_NOT_EXIST 0xE9 //IC卡不存在
|
||
#define IC_EXIST 0xE8 //IC卡存在
|
||
#define IC_READ_ERR 0xE7 //读取IC卡错误
|
||
#define IC_WRITE_ERR 0xE6 //写IC卡失败
|
||
#define IC_NO_ERR 0xE5 //登陆号码不对
|
||
|
||
//(4)主密钥生成
|
||
#define KEY_MASTER_BUILD_FAILED 0xE0 //系统主密钥生成失败
|
||
#define KEY_MASTER_NOT_BUILD_INT 0xDF //未生成主密钥
|
||
|
||
//(5)程序运行状态
|
||
#define S_PROGRAM_OK_CARD_OK 0xDE //程序运行正常,密押机正常
|
||
#define S_PROGRAM_OK_CARD_UNINIT 0xDD //程序运行正常,密押机未初始化
|
||
#define S_PROGRAM_ERR_CARD_UNKNOW 0xDC //程序运行异常,需重启。密押机状态未知
|
||
|
||
//(6)安控员登陆
|
||
#define S_ADMIN_NO_ERR 0xD5 //管理员号错误
|
||
#define S_ADMIN_AGAIN 0xD4 //管理员已登录
|
||
#define S_ADMIN_ERROR_TIMEOUT 0xD3 //登录失败( 卡处理超时 )
|
||
#define S_ADMIN_SYS_ERROR 0xD2 //登录失败( 系统错误 )
|
||
#define S_IC_NOT_INVALID 0xD1 //IC卡无效
|
||
#define S_ADMIN_PWD_LEN_ERR 0xD0 //密码长度错误
|
||
|
||
//(7) 查询连接状态
|
||
#define S_WAIT_CONN 0x01 //等待连接
|
||
#define S_SERVERING 0x02 //服务中
|
||
#define S_CONN_ON 0x03 //有连接数
|
||
|
||
//(8)动作标识
|
||
#define IC_COPY_TO 0x01 //复制
|
||
#define IC_PASTE_TO 0x02 //粘贴
|
||
#define IC_COPY_CANCEL 0x03 //取消本次拷贝
|
||
#define IC_COPY_AUTH 0X04 //复制管理员IC卡时验证口令
|
||
|
||
//(9)更改管理员IC口令
|
||
#define R_IC_MODIFY_ERR 0xC5 //更改失败
|
||
#define R_IC_NOT_OPER 0xC4 //非管理员IC卡
|
||
#define R_IC_OLD_PIN_ERR 0xC3 //原口令错误
|
||
|
||
//(10)IC卡类型
|
||
#define IC_TYPE_OPER 0x01 //系统管理员卡
|
||
#define IC_TYPE_ENCRYPT_BACK 0x02 //密钥备份卡
|
||
|
||
//(11) 客户IP设置
|
||
#define R_CLIENT_IP_EXIST 0xbf //IP地址已存在
|
||
#define R_CLIENT_IP_NOT_EXIST 0xbc //IP地址不存在
|
||
#define R_CLIENT_IP_FOMATE 0xbb //IP地址格式错误
|
||
#define R_CLIENT_IP_LIST_START 0xaf //下标超过范围
|
||
|
||
#define R_CLIENT_IP_FULL 0xb9 //客户IP已满(当前已存的IP>=MAX_CLIENT_IP(99))
|
||
#define CHECK_IP_SAME 0xCC //不能设置为本机IP
|
||
|
||
//(12) 网卡n参数设置
|
||
#define R_NEC_PARAM 0xb7 //网卡参数错误
|
||
#define R_NEC_PARAM_SET_ERR 0xb6 //网卡参数设置失败
|
||
#define R_NEC_BUSY 0xb5 //网卡设备忙
|
||
#define R_IMPORT_KEY2 0xb1 //密钥生成失败
|
||
#define SET_IP_SAME 0xb4 //IP不能设置同一网段
|
||
|
||
#define R_GRENTE_KEY_CMD_ERR 0xb0 //密钥生成失败,命令非法
|
||
#define R_GRENTE_KEY_LINE_FULL 0xaf //行号已满
|
||
#define R_IC_NOT_THIS_SYS 0xae //非本系统IC卡
|
||
#define R_KEYINFO_NOT_EXIST 0xac //KeyInfo文件不存在
|
||
#define R_IC_NO_ERR 0xab //卡号错误
|
||
#define R_NEC_ROUTE_EXITE 0x16 //该目标IP路由已存在
|
||
#define R_NEC_ROUTE_ADD 0x17 //路由添加失败
|
||
#define R_NEC_ROUTE_DEL 0x18 //路由删除失败
|
||
#define R_NEC_ROUTE_QUE 0x19 //路由删除失败
|
||
|
||
//(15)
|
||
//定义见err_no.h
|
||
|
||
//(16)
|
||
#define R_PORT_ERR 0x99 //端口号错误
|
||
#define R_WORK_LOG_FLAG_ERR 0x98 //工作日志标识错误
|
||
//(17)
|
||
#define R_ISSUE_KEY_ERR_NO 0x96 //密钥发行失败(无此行号)
|
||
//(18)
|
||
#define R_LOWER_BANK_KEY_FILE_NO_ERR 0x95 //下级行密钥文件行号错误
|
||
#define R_ENCRYPT_IC_NO_ERR 0x94 //密钥发行IC卡行号错误
|
||
|
||
//(19)
|
||
#define R_BANK_NO_ERR 0x93 //银行号不存在
|
||
#define R_OPEN_BACK_FILE_ERR 0x92 //打开备份文件失败
|
||
#define R_UPDATE_KEY_INFO_ERR 0x91 //KeyInfo文件更新失败
|
||
|
||
//(20)
|
||
#define R_START_OVER_FLOW 0x90 //下标超过范围
|
||
#define R_PARAM_ERR 0x89 //参数错误
|
||
|
||
//(21)
|
||
#define R_IC_NOT_1_OPER 0x85 //非系统管理员一卡
|
||
#define R_IC_NOT_2_OPER 0x84 //非系统管理员二卡
|
||
#define R_IC_NOT_3_OPER 0x83 //非系统管理员三卡
|
||
#define R_RESTORE_MASTER_KEY_3_FAILED 0x82 //恢复主密钥分量三失败
|
||
|
||
|
||
|
||
//0x61 命令失败只会返回此错误码!!
|
||
#define R_SET_TIME_ERR 0x79//设置系统时间失败
|
||
//单位
|
||
#define UNIT_T 5
|
||
#define UNIT_G 4
|
||
#define UNIT_M 3
|
||
#define UNIT_K 2
|
||
#define UNIT_B 1
|
||
|
||
|
||
|
||
#define ACCNUM 64
|
||
#define BATCHNUM 99
|
||
#define MANNUM 23
|
||
#define MANSIZE 22
|
||
#define ACCSIZE 96
|
||
#define RECSIZE 44
|
||
|
||
#define NORMAL 0 //正显
|
||
#define REVERSE 1 //反显
|
||
|
||
/******************用于6*8字符的上下位置显示***************/
|
||
#define CENTER 0x02 //6*8点阵的字符串上下对中到6*16的中间位置
|
||
#define UPHALF 0x02
|
||
#define DOWNHALF 0x04
|
||
/********************************************************/
|
||
#define MY_DATE_NUM_1 0x20
|
||
#define MY_DATE_NUM_2 0x40
|
||
#define MY_DATE_NUM_3 0x60
|
||
#define MY_DATE_NUM_4 0x80 // 数据查询中密钥X启用/停用日期
|
||
#define INPUT_OR_OUTPUT_MY_NUM 0x10 //导入或导出多少个行密钥
|
||
|
||
|
||
#define USB_UPDATE_OPT_DIR "/opt"
|
||
|
||
#define HSM_TEST_DIR "/opt/hsm_test/bin"
|
||
/**************** 用于格式化字符串显示********************/
|
||
#define INPUT 0xC0 //前加"请输入" 在圈存时作为收到结果数据的返回值
|
||
#define SELECT 0xD0 //前加"请选择"
|
||
#define COLON 0x08 //后加冒号 第4位
|
||
#define CLAIM 0x04 //后加叹号 第3位
|
||
/*******************************************************/
|
||
|
||
|
||
#define MAX_PARTITIONS 64
|
||
#define MAX_PARTITIONS_NAME 20
|
||
#define PREFIX "/dev/"
|
||
#define PREFIX_LEN strlen(PREFIX)
|
||
|
||
//(22)
|
||
#define R_LOG_NO_EXIST 0x7e //log不存在或者大小为0
|
||
#define R_UPAN_NO_EXIST 0x7d //U盘不存在
|
||
#define R_UPAN_READ_ERR 0x7c //写U盘失败
|
||
#define R_UPAN_FULL 0x7b //U盘已满
|
||
#define R_OUT_ERR 0x7a //导出失败
|
||
|
||
#define MOUNT_POINT "/mnt/usb"
|
||
|
||
/* Start Modify by yt.chen 2016-09-12 SN:88888888 Des:SJJ1316-B拷机兼容性修改 */
|
||
#define USB_UPDATE_BIN_DIR "/home/sunyard_tmp"
|
||
#define LOG_NAME "log"
|
||
#define USB_START_NAME "start.sh"
|
||
#define USB_CONFIG_NAME "config.sh"
|
||
/* End Modify by yt.chen 2016-09-12 SN:88888888 */
|
||
|
||
#define CONFINE_SYS "Encrypt.ini"
|
||
#define CONFINE_CLIENT_IP "ListIp.ini"
|
||
#define CONFINE_SYNC_IP "SyncIp.ini"
|
||
#define CONFINE_MYJ_IP "MYJIP.ini"
|
||
#define CONFINE_COMMUNICATION_KEY "CommunicationKey"
|
||
#define CONFINE_Packet_Field_Set "Packet.ini"
|
||
//log file define
|
||
#define LOG_FILE_ERR "ServerTrace.log"
|
||
#define LOG_FILE_TCP "Tcp.log"
|
||
|
||
#define MONTER_TYPE_TTY 1
|
||
#define MONTER_TYPE_WEB 2
|
||
#define MONTER_TYPE_CLIENT 1 //获取交易IP
|
||
#define MONTER_TYPE_MYJ 0 //获取管理IP
|
||
|
||
#define KEY_DIR "manage_key"
|
||
#define KEYMANAGE_DB_PATH "./db/keymanage.db"
|
||
#define ORGAN_INFO "Organization.ini"
|
||
#define TYPE_INFO "Type.ini"
|
||
#define TYPE_NUM "TypeKeyNum.ini"
|
||
|
||
/******************************************
|
||
* 管理员权限状态1
|
||
******************************************/
|
||
#define ADMIN_CFG 0x0001 // 配置管理员
|
||
#define ADMIN_KEY1 0x0002 // 密钥管理员一
|
||
#define ADMIN_KEY2 0x0004 // 密钥管理员二
|
||
#define ADMIN_SUPPER1 0x0008 // 超级管理员一
|
||
#define ADMIN_SUPPER2 0x0010 // 超级管理员二
|
||
#define ADMIN_SUPPER3 0x0020 // 超级管理员三
|
||
#define ADMIN_RELEASE 0x0040 // 发行状态
|
||
#define ADMIN_BACKUP 0x0080 // 备份状态
|
||
|
||
#define ADMIN_SUPPER 0x0038 // 超级权限(ADMIN_SUPPER1 & ADMIN_SUPPER2 & ADMIN_SUPPER3)
|
||
#define ADMIN_KEY 0x0006 // 密钥权限(ADMIN_KEY1 & ADMIN_KEY2)
|
||
|
||
/*****************************************
|
||
* 管理员权限状态2
|
||
******************************************/
|
||
#define LEVEL_CFG0 0x0000 // 无配置管理员登录
|
||
#define LEVEL_KEY0 0x0000 // 无密钥管理员登录
|
||
#define LEVEL_SUPPER0 0x0000 // 无超级管理员登录
|
||
#define LEVEL_SUPPER12 0x0018 // 超级管理员一二登录
|
||
#define LEVEL_SUPPER23 0x0030 // 超级管理员二三登录
|
||
#define LEVEL_SUPPER13 0x0028 // 超级管理员一三登录
|
||
|
||
|
||
#define MAX_ADMIN_NUMBER 6
|
||
#define MAX_NO_LENGTH 9
|
||
|
||
|
||
/*****************************************
|
||
* 日志相关定义
|
||
******************************************/
|
||
#define OPERLOG_SUPPER 0x31 // 超级管理员日志
|
||
#define OPERLOG_KEY 0x32 // 密钥管理员日志
|
||
#define OPERLOG_CFG 0x33 // 配置管理员日志
|
||
|
||
#define OPERLOG_FLAG_C 0 // IC 卡日志
|
||
#define OPERLOG_FLAG_U 1 // U 盾日志
|
||
|
||
#define UKEY_LEVEL_KEY1 0
|
||
#define UKEY_LEVEL_KEY2 1
|
||
#define UKEY_LEVEL_SUPPER1 2
|
||
#define UKEY_LEVEL_SUPPER2 3
|
||
#define UKEY_LEVEL_SUPPER3 4
|
||
#define UKEY_LEVEL_CFG1 5
|
||
|
||
|
||
/****************************************************************
|
||
* 用户管理状态: 远端管理,本地管理,交易管理
|
||
* semid_ManageUser 记录该状态
|
||
*****************************************************************/
|
||
#define MANAGE_USER_NONE 0 // 无用户状态
|
||
#define MANAGE_USER_LOCAL 1 // 本地管理用户状态
|
||
#define MANAGE_USER_REMOTE 2 // 远端管理用户状态
|
||
#define MANAGE_USER_TRADE 3 // 交易管理用户状态
|
||
|
||
|
||
|
||
//数据定义区
|
||
#define MAXKEYLEN 32
|
||
|
||
|
||
|
||
//参数的宏定义
|
||
|
||
|
||
//#define IC_DEBUG
|
||
#define default_pin_str "\x08\x08\x08\x08\x08\x08\x08\x08"
|
||
#define TAG 'T'
|
||
#define INFO_END 0x100
|
||
#define INDEX_END 0x1000
|
||
#define DATA_END 0x3000
|
||
|
||
|
||
/*命令*/
|
||
#define ASC_MSG_ST "ST"
|
||
#define ASC_MSG_ED "ED"
|
||
/*响应*/
|
||
#define ASC_MSG_SO "SO"
|
||
#define ASC_MSG_SU "SU"
|
||
#define PREFIX "/dev/"
|
||
#define PREFIX_LEN strlen(PREFIX)
|
||
#define DEBUG1
|
||
|
||
|
||
|
||
//配置文件的宏定义
|
||
#define CONFIG_INI "./Encrypt.ini" //配置文件
|
||
#define SERIAL_INI "./Serial.ini" //串口参数配置
|
||
#define CHECK_LOG "./check.log"
|
||
#define CARD_INI "./card.ini"
|
||
#define CLOCK_INI "./clock.ini"
|
||
|
||
/*
|
||
* 基本类型定义
|
||
*/
|
||
#ifndef MFC
|
||
typedef void VOID;
|
||
typedef const void CVOID;
|
||
#endif
|
||
|
||
typedef void * PVOID;
|
||
typedef const void * PCVOID;
|
||
|
||
typedef char CHAR;
|
||
typedef CHAR * PCHAR;
|
||
typedef const CHAR CCHAR;
|
||
typedef const CHAR * PCCHAR;
|
||
|
||
typedef int INT;
|
||
typedef INT * PINT;
|
||
typedef const INT CINT;
|
||
typedef const INT * PCINT;
|
||
|
||
typedef short SHORT;
|
||
typedef SHORT * PSHORT;
|
||
typedef const SHORT CSHORT;
|
||
typedef const SHORT * PCSHORT;
|
||
|
||
typedef long LONG;
|
||
typedef LONG * PLONG;
|
||
typedef const LONG CLONG;
|
||
typedef const LONG * PCLONG;
|
||
|
||
typedef float FLOAT;
|
||
typedef FLOAT * PFLOAT;
|
||
typedef const FLOAT CFLOAT;
|
||
typedef const FLOAT * PCFLOAT;
|
||
|
||
typedef double DOUBLE;
|
||
typedef DOUBLE * PDOUBLE;
|
||
typedef const DOUBLE CDOUBLE;
|
||
typedef const DOUBLE * PCDOUBLE;
|
||
|
||
typedef unsigned char UCHAR;
|
||
typedef UCHAR * PUCHAR;
|
||
typedef const UCHAR CUCHAR;
|
||
typedef const UCHAR * PCUCHAR;
|
||
|
||
typedef unsigned int UINT;
|
||
typedef UINT * PUINT;
|
||
typedef const UINT CUINT;
|
||
typedef const UINT * PCUINT;
|
||
|
||
typedef unsigned short USHORT;
|
||
typedef USHORT * PUSHORT;
|
||
typedef const USHORT CUSHORT;
|
||
typedef const USHORT * PCUSHORT;
|
||
|
||
typedef unsigned long ULONG;
|
||
typedef ULONG * PULONG;
|
||
typedef const ULONG CULONG;
|
||
typedef const ULONG * PCULONG;
|
||
|
||
|
||
|
||
typedef char STR;
|
||
typedef STR * PSTR;
|
||
typedef const STR CSTR;
|
||
typedef const STR * PCSTR;
|
||
|
||
typedef unsigned char BYTE;
|
||
typedef BYTE * PBYTE;
|
||
typedef const BYTE CBYTE;
|
||
typedef const BYTE * PCBYTE;
|
||
/*
|
||
typedef unsigned short WORD;
|
||
typedef WORD * PWORD;
|
||
typedef const WORD CWORD;
|
||
typedef const WORD * PCWORD;
|
||
*/
|
||
typedef int RESULT;
|
||
typedef RESULT * PRESULT;
|
||
typedef const RESULT CRESULT;
|
||
typedef const RESULT * PCRESULT;
|
||
|
||
typedef void * HANDLE;
|
||
typedef HANDLE * PHANDLE;
|
||
typedef const HANDLE CHANDLE;
|
||
typedef const HANDLE * PCHANDLE;
|
||
|
||
|
||
typedef unsigned char uchar;
|
||
|
||
|
||
|
||
/*串口*/
|
||
typedef struct _sys_serial
|
||
{
|
||
int com;
|
||
int baudrate; //波特率
|
||
char parity; //校验位
|
||
int databits; //数据位
|
||
int stopbits; //停止位
|
||
} sys_serial;
|
||
|
||
typedef struct card_config
|
||
{
|
||
int h;
|
||
int HYK16;
|
||
int SYD1308;
|
||
int e;
|
||
int n_w;
|
||
int n_w_1;
|
||
int n_s;
|
||
int r;
|
||
}card_t;
|
||
|
||
|
||
typedef struct _sys_config
|
||
{
|
||
int LMK_check_enable; //是否启用加密卡主密钥检测功能
|
||
int pci_checkself_enable; //是否启用加密卡自检功能
|
||
int pci_getdevNO_enable; //是否启用获取机具号功能
|
||
int clock_check_enable; //是否启用时钟校验功能
|
||
int ip_check_enable; //是否启用IP校验功能
|
||
int sdf_enable;
|
||
int stress_enable;
|
||
int sys_perf_enable;
|
||
int pcicard_check_enable; //
|
||
int exar_card_check_enable;//是否启动外购卡校验功能
|
||
char stress_duration[8];
|
||
char perf_duration[8];
|
||
int ratio_throughput;
|
||
unsigned char sn1[SYS_SN_LEN]; //机具号1
|
||
unsigned char sn2[SYS_SN_LEN]; //机具号2
|
||
int netnum_start; //网络测试循环的开始值
|
||
struct timeval clock_set; //时钟检验设置的时间(从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止)
|
||
long switch_time_sec; //加密机重启一次所花时间(时间限制:秒)
|
||
|
||
char ip_set_eth0[SYS_IP_LEN]; //网卡一默认设置IP
|
||
char ip_set_eth1[SYS_IP_LEN]; //网卡二默认设置IP
|
||
char ip_set_eth2[SYS_IP_LEN]; //网卡三默认设置IP
|
||
char ip_set_eth3[SYS_IP_LEN]; //网卡四默认设置IP
|
||
char ip_set_eth4[SYS_IP_LEN]; //网卡五默认设置IP
|
||
char ip_set_eth5[SYS_IP_LEN]; //网卡六默认设置IP
|
||
char ip_set_eth6[SYS_IP_LEN]; //网卡七默认设置IP
|
||
char ip_set_eth7[SYS_IP_LEN]; //网卡八默认设置IP
|
||
char ip_set_eth8[SYS_IP_LEN]; //网卡八默认设置IP
|
||
char ip_set_eth9[SYS_IP_LEN]; //网卡八默认设置IP
|
||
char ip_set_eth10[SYS_IP_LEN]; //网卡八默认设置IP
|
||
char ip_set_eth11[SYS_IP_LEN]; //网卡八默认设置IP
|
||
} sys_config;
|
||
|
||
|
||
|
||
typedef struct _test_type{
|
||
unsigned char name[20];
|
||
int (*func)(int);
|
||
}test_type;
|
||
|
||
typedef struct _key_type{
|
||
unsigned char name[10];
|
||
int id;
|
||
}key_type;
|
||
|
||
typedef struct _T_PCCmd
|
||
{
|
||
unsigned char CLA;
|
||
unsigned char INS;
|
||
unsigned char P1;
|
||
unsigned char P2;
|
||
unsigned short LC;
|
||
unsigned short LE;
|
||
}TPCCmd;
|
||
|
||
//respond
|
||
typedef struct _T_Respond
|
||
{
|
||
short SW;
|
||
}TRespond;
|
||
|
||
#define CMD_HEAD_LEN sizeof(TPCCmd)
|
||
|
||
struct my_msg{
|
||
long mtype;
|
||
char mtext[TCP_DATA_LENGTH];
|
||
};
|
||
|
||
typedef struct struDataPA
|
||
{
|
||
unsigned short commandcode;
|
||
int len;
|
||
int FormatDefined;
|
||
unsigned char data[MAX_INPUTDATA_LENGTH];
|
||
}struDataPA;
|
||
|
||
typedef struct struPrintBuf
|
||
{
|
||
char pin_key1[49];
|
||
char pin_key2[49];
|
||
char reference1[17];
|
||
char reference2[13];
|
||
char account1[17];
|
||
char account2[7];
|
||
char field[16][81];
|
||
|
||
}struPrintBuf;
|
||
|
||
|
||
//布尔量
|
||
typedef enum _BOOL
|
||
{
|
||
FALSE=0, TRUE,
|
||
} BOOL;
|
||
|
||
|
||
/*
|
||
**Hash 算法标准数据
|
||
*/
|
||
#define SM3_MESSAGE 0x61,0x62,0x63
|
||
#define SM3_RESULT 0x66,0xc7,0xf0,0xf4,0x62,0xee,0xed,0xd9,0xd1,0xf2,0xd4,0x6b,0xdc,0x10,0xe4,0xe2, \
|
||
0x41,0x67,0xc4,0x87,0x5c,0xf2,0xf7,0xa2,0x29,0x7d,0xa0,0x2b,0x8f,0x4b,0xa8,0xe0
|
||
|
||
#define SHA1_MESSAGE 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x41,0x42,0x43,0x44,0x45,0x46, \
|
||
0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,0x50,0x51,0x52,0x53,0x54,0x55,0x56
|
||
#define SHA1_RESULT 0x12,0x06,0xe0,0xc0,0x23,0xdc,0x4b,0x25,0x5b,0x24,0xc6,0x80,0xf1,0x79,0x49,0x52,0x6d,0xf2,0x8e,0xd9
|
||
|
||
#define MD5_MESSAGE 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x41,0x42,0x43,0x44,0x45,0x46, \
|
||
0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,0x50,0x51,0x52,0x53,0x54,0x55,0x56
|
||
#define MD5_RESULT 0x6a,0x46,0x26,0x9d,0xba,0xdd,0xec,0x9f,0xfe,0xa3,0xeb,0xe1,0xd4,0x4c,0x28,0x01 \
|
||
|
||
#define SHA256_MESSAGE 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x41,0x42,0x43,0x44,0x45,0x46, \
|
||
0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,0x50,0x51,0x52,0x53,0x54,0x55,0x56
|
||
#define SHA256_RESULT 0x41,0xba,0x69,0x6b,0xc2,0x82,0x29,0x24,0xf7,0xcb,0xa0,0xce,0x21,0x1b,0xfd,0xdf, \
|
||
0xe6,0x53,0xce,0xb3,0xc9,0x81,0x25,0x5a,0x17,0x75,0xbe,0xbf,0x11,0x0b,0xf4,0x2d
|
||
|
||
#endif
|
||
|
||
|
||
|
||
|