| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- #ifndef PINPADIMPL_H
- #define PINPADIMPL_H
- #define FILE_VERSION 1
- #include "PinPadClass.h"
- #include "pinpadxzf31.h"
- #define JT_SUCCESS 0 // command succeeded
- #define JT_HARDWARE_ERROR -1 // command failed because of hardware error
- #define JT_TIMEOUT -2 // wait for user interaction timed out
- #define JT_PARA_ERR -3 //
- #define MK_HEAD 0x1
- #define WK_HEAD 0x07
- // #define
- class PinPadImpl : public PinPadClass
- {
- public:
- PinPadImpl();
- ~PinPadImpl();
- ErrorCodeEnum GetDevCategory(DevCategoryInfo &devCategory);
- ErrorCodeEnum Reset();
- ErrorCodeEnum DevClose();
- ErrorCodeEnum GetLastErr(DevErrorInfo &devErrInfo);
- ErrorCodeEnum DevOpen(DWORD dwPort, DWORD dwBaudRate);
- ErrorCodeEnum KeyRead(BYTE &ch);
- ErrorCodeEnum SetParam(SetParamTypeEnum eType, SetParamValueEnum eValue);
- ErrorCodeEnum SetAccNo(AccountInfo accInfo);
- //*
- // Load master key. (in plain text)
- // [key]:byte value in string type. ex. 0x123456FF --> "123456FF"
- ErrorCodeEnum LoadMasterKey(MasterKeyParam masterKey);
- // Load working key. (encrypted data)
- // Use the according master key to decrypt the key,then load result into pinpad
- // [key]:byte value in string type. ex. 0x123456FF --> "123456FF"
- ErrorCodeEnum LoadWorkingKey(WorkKeyParam wkKey);
- // - dwMkSN:master key serial number
- // - dwWkSN:working key serial number
- // - ActiveWorkingKey(主密钥序号,99)表示激活“主密钥序号”的主密钥作为当前工作密钥
- ErrorCodeEnum ActiveWorkingKey(DWORD dwMkSN,DWORD dwWkSN);
- // Start key press(pin mode).
- // byLen:输入密码长度,键盘检测到用户输入确认键后结束输入,计算pinblock
- ErrorCodeEnum StartPinInputConfirm(BYTE byLen);
- // byLen:输入密码长度,键盘检测到用户输入byLen位有效!!长度时自动结束输入,计算pinblock
- ErrorCodeEnum StartPinInput(BYTE byLen);
- // Start key press(plain text mode).
- ErrorCodeEnum StartPlainInput();
- ErrorCodeEnum StopInput();
- ErrorCodeEnum GetPinBlock(PinBlock &block);
- // - srcInfo.data:source plain text data
- // (byte value in string type. ex. 0x123456FF --> "123456FF")
- // - destInfo.data:destination encrypted data
- ErrorCodeEnum EncryptData(EnDecryptInfo srcInfo, EnDecryptInfo &destInfo);
- // - srcInfo.data:source plain text data
- // (byte value in string type. ex. 0x123456FF --> "123456FF")
- // - destInfo.data:destination encrypted data
- ErrorCodeEnum MacEncrypt(EnDecryptInfo srcInfo, EnDecryptInfo &destInfo);
- // Get the encrypt method supported.
- // return value:
- // 0x1:3des only; 0x2:sm4 only; 0x3:both 3des and sm4
- int GetEncryptFunc();
- //*/
- protected:
- // char m_sKeyAttr[33];
- PinPadXZF31* m_pPinpad;
- bool m_bIsOPen;
- int m_iPinLen, m_iKeyGot;
- bool m_bAutoEnd, m_bPinMode;
- char m_sCardNo[16];
- int m_iWorkKey;
- bool m_bSMMode;
- ErrorCodeEnum StartPinInput(int iLen, bool bAutoEnd);
- ErrorCodeEnum GetErrorInfo(int iCode, char* sErr, ...);
- DevErrorInfo m_DevErrInfo;
- SetParamValueEnum m_EncType, m_MacType, m_PinType, m_Ecb_Cbc;
- };
- #endif // PINPADIMPL_H
|