#include "../include/PinPadClass.h" #include "../include/log4vendor.h" #include "CILIX_AUX_UTILS.h" class PinPadNantian : public PinPadClass { public: PinPadNantian(); ~PinPadNantian(); //DeviceBaseClass ErrorCodeEnum GetDevCategory(DevCategoryInfo &devCategory); ErrorCodeEnum Reset(); ErrorCodeEnum DevClose(); ErrorCodeEnum GetLastErr(DevErrorInfo &devErrInfo); //PinPadClass ErrorCodeEnum DevOpen(DWORD dwPort, DWORD dwBaudRate); ErrorCodeEnum KeyRead(BYTE &ch); ErrorCodeEnum SetParam(SetParamTypeEnum eType, SetParamValueEnum eValue); ErrorCodeEnum SetAccNo(AccountInfo accInfo); ErrorCodeEnum LoadMasterKey(MasterKeyParam masterKey); ErrorCodeEnum LoadWorkingKey(WorkKeyParam wkKey); ErrorCodeEnum ActiveWorkingKey(DWORD dwMkSN, DWORD dwWkSN); ErrorCodeEnum StartPinInput(BYTE byLen); ErrorCodeEnum StartPinInputConfirm(BYTE byLen); ErrorCodeEnum StartPlainInput(); ErrorCodeEnum StopInput(); ErrorCodeEnum GetPinBlock(PinBlock &block); ErrorCodeEnum EncryptData(EnDecryptInfo srcInfo, EnDecryptInfo &destInfo); ErrorCodeEnum MacEncrypt(EnDecryptInfo srcInfo, EnDecryptInfo &destInfo); int GetEncryptFunc(); BOOL m_Open; //标志设备是否打开 DevErrorInfo m_Error; //标记错误码 int g_flag; //标记按键输入模式 int m_PinNum; //记录密码输入个数 int g_Auto; //标记是否自动结束 AccountInfo g_CardNo; //存储CustomData的数据 DWORD g_dwMkSN; //标记主密钥号 DWORD g_dwWkSN; //标记工作秘钥号 int (*SUNSON_OpenCom)(const char *sztty, long nBaudrate); int (*SUNSON_GetVersionNo)(unsigned char *VersionNo); int (*SUNSON_CloseCom)(void); int (*SUNSON_ScanGetKey)(unsigned char *ucKeyValue); int (*SUNSON_CloseEppPlainTextMode)(unsigned char *ReturnInfo); int (*SUNSON_LoadSM4Key)(int ucKeyId,int ucDecryptKeyId,int KeyAttribute,unsigned char ucKeyLen,unsigned char *KeyValue, unsigned char *ReturnInfo); int (*SUNSON_LoadUserKey)(int ucKeyId, int ucDecryptKeyId, long KeyAttribute,unsigned char ucKeyLen, unsigned char *KeyValue, unsigned char *ReturnInfo); int (*SUNSON_SetKeyMark)(long ActiveFunc, long ActiveFDK, long EndFunc, long EndFDK, unsigned char*ReturnInfo); int (*SUNSON_GetPin)(unsigned char ucPinMinLen, unsigned char ucPinMaxLen, unsigned char AutoReturnFlag, unsigned char *ReturnInfo); int (*SUNSON_UseEppPlainTextMode)(unsigned char PlaintextLength, unsigned char AutoEnd, unsigned char *ReturnInfo); int (*SUNSON_SwitchArithmetic)(unsigned char ArithmeticType,unsigned char *DataResult); int (*SUNSON_GetPinBlock)(int UserKeyId, int JM_mode, unsigned char padchar, unsigned char ucCardLen, unsigned char*ucCardNumber, unsigned char*PinBlockResult); int (*SUNSON_DataCompute)(int KeyId, unsigned char JM_mode, int SF_mode, unsigned char padchar, int datalen, unsigned char *data, unsigned char *DataResult); int (*SUNSON_MakeMac)(int UserKeyId, int Mac_mode, int nMacDataLen, unsigned char *ucMacData, unsigned char *MacResult); int (*SUNSON_ScanKeyPress)(unsigned char *ucKeyValue); void (*SUNSON_OpenLogEx)(unsigned char bFlag, int nLogLevel); int (*SUNSON_GetSerialNo)(unsigned char *SerialNumber); };