#pragma once #include "stdafx.h" #include "ZT598MGFDDef.h" #include #pragma pack(push,1) class CZT598M1FD_DevImpl { public: CZT598M1FD_DevImpl(BOOL bIsFather); virtual ~CZT598M1FD_DevImpl(); public: virtual BOOL OpenDevice(LPCommParam lpParam); virtual BOOL CloseDevice(); virtual BOOL ExchangeData(const LPEPPExchangeDataField lpstSendInfo, LPEPPExchangeDataField lpstReceiveInfo); virtual VOID SetKeyInfo(const LPBYTE lpbyUAK, WORD wUAKSize, const LPBYTE lpbyKBPK, WORD wKBPKSize); virtual BOOL EditDerTag(LPBYTE lpbyBuffer, LPBYTE lpbyDerTag, DerTagType enDerTagType, USHORT &usOffset); virtual USHORT GetDerTagLength(LPBYTE lpbySource); BOOL SecureComm(BYTE byCommand, LPBYTE lpbyData, WORD &wStatusCode); protected: //--------------------------------- DevImpl --------------------------------- // (Edit command data & Execute command) virtual BOOL EditCmd(const LPEPPExchangeDataField lpstSendInfo, LPUINT lpuTraceMaskCount = NULL, LPUINT lpuMaskOffsetArray = NULL, LPUINT lpuMaskLenArray = NULL); BOOL ParseResponse(LPEPPExchangeDataField lpstReceiveInfo, LPUINT lpuTraceMaskCount = NULL, LPUINT lpuMaskOffsetArray = NULL, LPUINT lpuMaskLenArray = NULL); BOOL ParseDerTag(LPBYTE lpbyBuffer, LPBYTE lpbyDerTag, DerTagType enDerTagType, USHORT &usOffset); protected: CDevComm* m_lpIDevComm; CommInfo m_stCommInfo; BYTE m_bySndBuff[MAX_BUFF_SIZE]; BYTE m_byRcvBuff[MAX_BUFF_SIZE]; LPBYTE m_lpbyUAK; LPBYTE m_lpbyKBPK; WORD m_wUAKSize; WORD m_wKBPKSize; BYTE m_byLastCmd; }; #pragma pack(pop)