| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- #pragma once
- /*
- Öмä½Ó¿ÚµÄʵÏÖ¡£
- */
- #include "stdafx.h"
- #include "ZT598MGFD_DevImpl.h"
- #include <unistd.h>
- #pragma pack(push,1)
- #define EPP_MAIN_KEY_CODE_COUNT 16
- #define EPP_FUNCTION_KEY_CODE_COUNT 8
- enum AuthenticationMode;
- enum PWDKeyID;
- enum KeyCheckMode;
- enum SwitchMode;
- enum ControlMode;
- enum KeyboardCodeMode;
- struct tag_EPPHWKeyInfo;
- typedef tag_EPPHWKeyInfo EPPHWKeyInfo, *LPEPPHWKeyInfo;
- struct tag_EPPLogicKeyInfo;
- typedef tag_EPPLogicKeyInfo EPPLogicKeyInfo, *LPEPPLogicKeyInfo;
- struct tag_GetKeyBoardCodeResponse;
- typedef tag_GetKeyBoardCodeResponse GetKeyBoardCodeResponse, *LPGetKeyBoardCodeResponse;
- typedef struct tag_VirtualKeyPressParam VirtualKeyPressParam, *LPVirtualKeyPressParam;
- static BYTE g_byDesHwKeyIndexMask[(MAX_HWKEY_COUNT + (8 - 1)) / 8];
- static BYTE g_bySMHwKeyIndexMask[(MAX_SM_HWKEY_COUNT + (8 - 1)) / 8];
- static BYTE g_byRSAHwKeyIndexMask[(MAX_RSA_HWKEY_COUNT + (8 - 1)) / 8];
- static WORD g_wKeyboardDisableCode = 0xFFFF;
- static WORD g_wFunKeyBoardDisableCode = 0xFFFF;
- class CZT598M1FD_DevCtrl
- {
- public:
- CZT598M1FD_DevCtrl();
- virtual ~CZT598M1FD_DevCtrl();
- public:
- LONG InitDevice(LPSTR lpszDevModel, WORD wModelBufSize, LPSTR lpszSMVer, WORD wSMVerBufSize, LPSTR LpszSN, WORD wSNSize);
- LONG SetDeviceConfigure(PinpadDevConfig devConfig, LPPinpadStatus lpPinpadStatus);
- BOOL CloseDevice();
- LONG GetDevStatus(LPPinpadStatus lpPinpadStatus);
- LONG GetSMVersion(LPCSTR lpszVersion, USHORT &usLen);
- LONG RemoveInstallAuthen(BYTE byMode, LPSYSTEMTIME lpSysTime, LPPinpadStatus lpPinpadStatus);
- LONG VirtualKeyPress(VirtualKeyPressParam virtualKeyPress);
- long DevReset(WORD wResetMode, LPPinpadStatus lpPinpadStatus);
- BOOL AuthenticateAllKeys(BOOL bSM = FALSE);
- BOOL AuthenticateAllKeys(BOOL bInitIfFailed, LPPinpadStatus lpPinpadStatus);
- LONG AuthenticateKey(WORD wKeyID, AuthenticationMode enMode);
- //LONG DeleteKey(WORD wKeyType, LPCSTR lpszKeyName, LPPinpadStatus lpPinpadStatus);
- LONG DeleteKey(WORD wId);
- VOID SetERRCode(LPCTSTR szFile, LONG lLine, BYTE byType, ULONG ulERRCode);
- BOOL ClearKeyInfo(BYTE byLogicKeyId, BOOL bSM = FALSE);
- LONG DeleteHWKey(BYTE byLogicKeyId, WORD wKeyId, BOOL bSM = FALSE);
- BOOL WriteKeyMapFile(BOOL bSM = FALSE);
- BOOL ReadKeyMapFile(BOOL bSM = FALSE);
- BOOL WriteKeyMapToEPP(BOOL bSM = FALSE);
- LONG ReadUserData(BYTE byUserBlock, BYTE byUserData[256]);
- LONG WriteUserData(BYTE byUserBlock, BYTE byUserData[256]);
- LONG SetControlMode(ControlMode enControlMode, BYTE byControlCode);
- BOOL ClearRSAKeyInfo(BYTE byRSAKeyId);
- LONG DeleteRSAHWKey(BYTE byRSAKeyId, WORD wKeyId);
- VOID GetKeyState();
- LONG LoadKey(WORD wKeyType, LPCSTR lpszKeyName, DWORD dwUse, LPBYTE lpbyKey, int nKeyLen, WORD wCheckMode, LPCSTR lpszEncKeyName,
- LPBYTE lpbyCheckValue, int nCheckValueLen, LPBYTE lpbyKCV, WORD& wKCVLen, LPPinpadStatus lpPinpadStatus);
- BOOL GetLogicKeyInfo(LPEPPLogicKeyInfo &lpEPPLogicKeyInfo, LPCSTR lpszKeyName, BOOL bSM/* = FALSE*/);
- BOOL GetHWKeyInfo(LPEPPHWKeyInfo &lpEPPHWKeyInfo, BYTE byLogicKeyId, WORD wAttribute, BOOL bSM/* = FALSE*/);
- BOOL SetKeyName(BYTE byLogicKeyId, LPCSTR lpszKeyName, BOOL bSM/* = FALSE*/);
- BOOL AllotLogicKeyInfo(LPEPPLogicKeyInfo &lpEPPLogicKeyInfo, LPCSTR lpszKeyName, BOOL bSM/* = FALSE*/);
- BOOL AllotHWKeyInfo(LPEPPHWKeyInfo &lpEPPHWKeyInfo, BYTE byLogicKeyId, WORD wAttribute, BOOL bSM/* = FALSE*/);
- LONG CryptData(WORD wKeyType, LPCSTR lpszKeyName, WORD wMode, BYTE byAlgorithm, BYTE byPattern, LPBYTE lpbyData, USHORT usDataLen,
- BYTE byPadding, LPBYTE lpbyStartValue, USHORT usStartValueLen, LPCSTR lpszStartKeyName, LPBYTE lpbyKeyEncKey, USHORT usEncKeyLen, LPBYTE lpbyResult,
- WORD& wResultLen, LPPinpadStatus lpPinpadStatus);
- LONG CryptData(WORD wKeyType, LPCSTR lpszKeyName,WORD wMode, BYTE byAlgorithm, BYTE byPattern, LPBYTE lpbyData, USHORT usDataLen,
- BYTE byPadding, LPBYTE lpbyStartValue, USHORT usStartValueLen, LPCSTR lpszStartKeyName, LPBYTE lpbyKeyEncKey, USHORT usEncKeyLen, LPBYTE lpbyResult,
- WORD& wResultLen, LPPinpadStatus lpPinpadStatus, BOOL bCheckUse);
- //LONG CryptData(LPCSTR lpszKeyName, WORD wMode, LPBYTE lpbyData, USHORT usDataLen, LPBYTE lpbyResult, WORD& wResultLen);
- LONG CalcMac(WORD wKeyType, LPCSTR lpszKeyName, BYTE byAlgorithm, LPBYTE lpbyData, USHORT usDataLen, BYTE byPadding, LPBYTE lpbyStartValue, USHORT usStartValueLen,
- LPCSTR lpszStartKeyName, LPBYTE lpbyKeyEncKey, USHORT usEncKeyLen, LPBYTE lpbyMAC, WORD& wMACLen, LPPinpadStatus lpPinpadStatus);
- LONG GetPinBlock(WORD wKeyType, LPCSTR lpszKeyName, WORD wFormat, BYTE byPadding, LPCSTR lpszCustomerData, LPCSTR lpszXORData, LPCSTR lpszEncKeyName,
- LPBYTE lpbyBlock, WORD& wBlockLen, LPPinpadStatus lpPinpadStatus);
- LONG SetEntryMode(SwitchMode enSwitchMode, WORD wKeybordDisCode, WORD wFuncKeybordDisCode);
- LONG SetKeyboardCode(KeyboardCodeMode enSetKeyboardCodeMode);
- char *_itoa_s(int value, char *string, int limit,int radix);
- BOOL WriteDesMapFile();
- BOOL ReadDesMapFile();
- BOOL WriteSM4MapFile();
- BOOL ReadSM4MapFile();
- LONG GetKeyboardCode(KeyboardCodeMode enGetKeyboardCodeMode, GetKeyBoardCodeResponse &stGetKeyBoardCodeResponse);
- VOID CheckKeyMap(BOOL bSM = FALSE);
- BOOL ReadKeyMapFromEPP(BOOL bSM = FALSE);
- public:
- LONG ExchangeKBPK();
- LONG LoadCTK();
- LONG ResetEpp();
- LONG GetEppSensorData(LPDWORD lpdwSensorData = NULL);
- WORD ReadEntryText(LPBYTE lpbyTxtBufer, WORD wBufSize);
- LONG SetEppParam();
- PinpadDevConfig m_stPinpadDevConfig;
- LONG DelEntryPinKey(BYTE byMode, LPPinpadStatus lpPinpadStatus);
- public:
- PinpadCap m_stDevCap;
- PinpadStatus m_stPinpadStatus;
- protected:
- WORD KeyTablePos(BYTE byKeyPressValue, BYTE &byKeyPressPos);
- LONG CheckRemoveInstallStatus(BYTE byMode);
- LONG AutoUpdatePsw(PWDKeyID enPWDKeyID, LPCSTR lpOldPSW, LPCSTR lpNewPSW);
- LONG AutoPswInput(LPBYTE lpbyPswTypeA, int nPswTypeALen, LPBYTE lpbyPswTypeB, int nPswTypeBLen);
- protected:
- CZT598M1FD_DevImpl * m_lpDevImpl;
- EPPKeyMap m_EPPDESKeyMap;
- EPPKeyMap m_EPPSMKeyMap;
- RSAKeyMap m_EPPRSAKeyMap;
- EPPExchangeDataField m_stExchangeSendData;
- EPPExchangeDataField m_stExchangeReceiveData;
- PinpadInputLimitInfo m_stPinpadInputLimitInfo;
- CHAR m_szErrMsg[MAX_DEV_ERROR_MSG_LEN];
- short m_shErrCode;
- SingleVer m_stDevFWVerList[MAX_FWVER_NUM];
- BYTE m_byEPPKeyCode[EPP_MAIN_KEY_CODE_COUNT];
- BYTE m_byFunKeyCode[EPP_FUNCTION_KEY_CODE_COUNT];
- BYTE m_byFunKeyCodePos[EPP_FUNCTION_KEY_CODE_COUNT];
- LPBYTE m_lpbyUAK;
- LPBYTE m_lpbyKBPK;
- WORD m_wUAKSize;
- WORD m_wKBPKSize;
- UINT_PTR m_uiTimerId;
- BOOL m_bTimerStarted;
- DevConnInfo m_devConnInfo;
- LONG m_lLastError;
- BYTE m_byMainChipSN[8];
- };
- #pragma pack(pop)
|