| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- #pragma once
- #ifndef PINPADCLASSIMPL_ZT598M_H
- #define PINPADCLASSIMPL_ZT598M_H
- #pragma pack(push,1)
- #include "common.h"
- //招行公共头文件
- #include "stdafx.h"
- #include <string.h>
- #include "ZT598MGFD_DevCtrl.h"
- #include <assert.h>
- //#include "log4vendor.h"
- typedef struct tag_KeyReadData
- {
- DWORD dwSize; //本次StartInput到StopInput之间, ZT_PIN_ReadInputData所读取的所有按键数量
- DWORD dwCurrentRead; //当前传递给KeyRead函数的字符指针
- BYTE data[MAX_PIN_READ_SIZE]; //本次StartInput到StopInput之间, ZT_PIN_ReadInputData所读取的所有按键字符
- } KeyReadData, *LPKeyReadData;
- typedef struct tag_PinpadSPConfig
- {
- BYTE byRemoveInstall;
- BYTE byFKDefCodeList[SHORT_BUFF_SIZE_2];
- BYTE byFDKDefCodeList[SHORT_BUFF_SIZE_2];
- BYTE byFKKeybdEventCodeList[SHORT_BUFF_SIZE_2];
- BYTE byFDKKeybdEventCodeList[SHORT_BUFF_SIZE_2];
- WORD wKeybdEventMode;
- //FDKPosition fdkPosition[SHORT_BUFF_SIZE_2];
- BYTE byAlgorithmMac;
- BYTE bySM4AlgorithmMac;
- BYTE byDESTo3DES;
- BOOL bIsAsynCancelClearPins;
- BOOL bGetDataReturnNonNumericKeys;
- INT nGetPinEchoValue;
- BYTE byCustomerDataMode;
- BYTE byPaddingMode;
- LONG lLongPressStatus;
- BOOL bLongPressActualDevState;
- BOOL bStartValueUsingPos;
- BYTE byPinEnterLessThanMinLenMode;
- BYTE bySM4Mode;
- CHAR szSM4KeyNameKeyword[SHORT_BUFF_SIZE_3];
- BOOL bKeyDetailIncludeSM4KeyInfo;
- BOOL bInitializationDelSM4Key;
- WORD wAlgorithmDefCryptSMECB;
- WORD wAlgorithmDefCryptSMCBC;
- WORD wAlgorithmDefCryptSMMAC;
- WORD wUSEDefSM4;
- WORD wCapAlgorithms;
- int nAddress;
- WORD wFlash;
- int nRKLSupp;
- LONG lTerminalKeyInactiveErr;
- LONG lInvalidDataErr;
- CHAR sStatusExtra[MAX_COUNT];
- WORD wOfflineStatus;
- BOOL bGetDataBeep;
- BOOL bGetPinBeep;
- BOOL bRSAforABCTest;
- } PinpadSPConfig, *LPPinpadSPConfig;
- //class PINPAD_KEBA_7_1SHARED_EXPORT PinPadClassImpl:public PinPadClass
- class PinPadClassImpl:public PinPadClass
- {
- public:
- PinPadClassImpl();
- virtual ~PinPadClassImpl();
- //DeviceBaseClass
- virtual ErrorCodeEnum GetDevCategory(DevCategoryInfo &devCategory);
- virtual ErrorCodeEnum Reset();
- virtual ErrorCodeEnum DevClose();
- virtual ErrorCodeEnum GetLastErr(DevErrorInfo &devErrInfo);
- //PinPadClass#include "CkLog.h"
- virtual ErrorCodeEnum DevOpen(DWORD dwPort, DWORD dwBaudRate);
- virtual ErrorCodeEnum KeyRead(BYTE &ch);
- virtual ErrorCodeEnum PinRead(BYTE &ch);
- #ifdef DEVINC20151215
- virtual ErrorCodeEnum StartPinInput(BYTE byLen);
- #endif
- #ifdef DEVINC20160229
- virtual ErrorCodeEnum StartPinInput(BYTE byLen, bool bConfirm = false);
- #endif
- #ifdef DEVINC20160713
- virtual ErrorCodeEnum StartPinInput(BYTE byLen);
- virtual ErrorCodeEnum StartPinInputConfirm(BYTE byLen);
- #endif
- virtual ErrorCodeEnum StartPlainInput();
- virtual ErrorCodeEnum StopInput();
- virtual ErrorCodeEnum LoadMasterKey(MasterKeyParam masterKey);
- virtual ErrorCodeEnum LoadWorkingKey(WorkKeyParam wkKey);
- virtual ErrorCodeEnum ActiveWorkingKey(DWORD dwMkSN, DWORD dwWkSN);
- virtual ErrorCodeEnum SetParam(SetParamTypeEnum eType, SetParamValueEnum eValue);
- virtual ErrorCodeEnum EncryptData(EnDecryptInfo srcInfo, EnDecryptInfo &destInfo);
- virtual ErrorCodeEnum MacEncrypt(EnDecryptInfo srcInfo, EnDecryptInfo &destInfo);
- virtual ErrorCodeEnum GetPinBlock(PinBlock &block);
- virtual ErrorCodeEnum SetAccNo(AccountInfo accInfo);
- virtual int GetEncryptFunc();
- private:
- bool m_bDevOpen;
- PinpadStatus* m_LPPinpadStatus;
- CHAR m_sDevModel[MID_BUFF_SIZE_1];
- CHAR m_sSMVer[MID_BUFF_SIZE_1];
- CHAR m_szMainChipSN[9];
- PinpadDevConfig m_cfgDev;
- PinpadSPConfig m_cfgSP;
- PinpadCap m_devCap;
- BOOL m_bNeedInitialization;
- CHAR m_szErrMsg[MAX_DEV_ERROR_MSG_LEN];
- short m_shErrCode;
- CHAR m_sIniPath[MAX_PATH];
- SetParamValueEnum m_enumEncryptMethod;
- SetParamValueEnum m_enumEcbCbcMode;
- SetParamValueEnum m_enumMacAlgrithm;
- SetParamValueEnum m_enumPinAlgrithm;
- WORD m_wCryptDataAlgorithm;
- WORD m_wMacMode;
- WORD m_wCryptMacAlgorithm;//暂未使用
- BYTE m_byPattern;
- WORD m_wPinFormat;//format of PinBlock; Set by SetParam(EPP_PT_SET_PIN_ALGORITH, EPP_PIN_ALGO_ISO9564_1_ANSI or EPP_PIN_ALGO_IBM3624)
- AccountInfo m_accountInfo;
- DWORD m_dwMasterKeySN;
- DWORD m_dwWorkingKeySN;
- CHAR m_szKeyName[32];
- CHAR m_szEncKeyName[32];
- BOOL m_bSM;
- public:
- CZT598M1FD_DevCtrl *ZT598M1FD_DevCtrl;
- protected:
- BOOL ReadPinpadConfig(/*LPCTSTR lpszSPIniPath, */LPPinpadDevConfig lpDevConfig, LPPinpadSPConfig lpSPConfig);
- ErrorCodeEnum SaveErrorInfo(int iErrCode);
- ErrorCodeEnum EncryptCommon(EnDecryptInfo srcInfo, EnDecryptInfo &destInfo, bool bMac = false);
- protected://GetData GetPin GetPinBlock
- BOOL m_bPinMode;
- CHAR m_cEcho;
- ULONG m_ulTerminateKeys;
- ULONG m_ulTerminateFDKs;
- USHORT m_usInputLen;
- BOOL m_bHavePIN;
- ULONG m_ulFuncMask;
- ULONG m_ulFDKMask;
- UINT m_uiDetectKeyPress;
- USHORT m_usPinMinLen;
- WORD m_wLogicPort;
- BOOL m_bKeyboardStarted;
- bool m_bConfirm;
- SwitchMode m_nCurrentEntryMode; //保存当前输入方式,故障恢复重新打开设备也要恢复输入方式
- int m_nCurrentPinLen;
- int m_nMaxPinLen;
- KeyReadData m_pinpadReadData;
- LONG StartPinInputCommon(BYTE byLen);
- #ifdef WRITE_ENLARGE_KEY_INDEX_FILE
- HRESULT WriteEnlargeKeyIndexFile();//使用eEX_1_2_8时,为了方便查看秘钥映射关系而保存的文件
- #endif
- };
- ErrorCodeEnum CreateDevComponent(DeviceBaseClass *&pBaseObj);
- ErrorCodeEnum ReleaseDevComponent(DeviceBaseClass *&pBaseObj);
- #endif // PINPADCLASSIMPL_ZT598M_H
- #pragma pack(pop)
|