| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- #pragma once
- #include "DeviceBaseClass.h"
- #include "Dongle_API.h"
- #include "stdio.h"
- #include "logfile.h"
- #include <string>
- #define NORMAL_RIGHT 0 //最小匿名权限
- #define USER_RIGHT 1 //最小用户权限
- #define ADMIN_RIGHT 2 //最小开发商权限
- #define ROCKEYARM_DEFAULT_ADMIN_PIN "FFFFFFFF" //默认开发商PIN码
- #define ROCKEYARM_DEFAULT_USER_PIN "12345678" //默认用户PIN码
- #define MAX_DATAFILE_SIZE 4096 //数据文件最大长度
- //可执行文件路径
- #define ROCARM_READ_DATAFILE_EXE "readDataFile.bin"
- #define ROCARM_WRITE_DATAFILE_EXE "writeDataFile.bin"
- #define ROCARM_WRITE_TDESKEY_EXE "writeTDESKey.bin"
- //文件ID定义
- #define PRIVATE_KEY_ID 0x0001 //私钥文件ID
- #define USER_CERT_ID 0x0002 //用户证书ID
- #define WRITE_TDES_EXE_ID 0x0010 //写TDES密钥的exe文件ID
- #define WRITE_DATA_FILE_EXE_ID 0x0012 //写数据文件的exe文件ID
- #define READ_DATA_FILE_EXE_ID 0x0013 //读数据文件可执行文件ID
- #define READ_LOG_FILE_EXE_ID 0x0014 //读日志文件可执行文件ID
- #define ROOT_CA_CERT_ID 0x0021 //总行根证书
- #define SUB_CA_CERT_ID 0x0022 //分行证书
- #define DEVICE_ID_LIST 0x0031 //准入设备列表
- #define TDES_KEY_ID 0x3333 //3DES通信密钥ID
- #define INPUT_NULL_ERR 0xF1000001 // 输入参数为空
- #define NEW_MEM_ERR 0xF100000e // 申请内存失败
- #define OPEN_EXE_FILE_ERR 0xF000001a //打开本地exe文件错误
- using namespace std;
- class RocArmTime :
- public DeviceBaseClass
- {
- public:
- RocArmTime(void);
- ~RocArmTime(void);
- DWORD FindUsbKey(USBKEY_INFO* pKeyInfo, unsigned int* pCount);
- DWORD OpenUsbKey(USBKEY_HANDLE *pHandle,unsigned int Item);
- DWORD CloseUsbKey(USBKEY_HANDLE hHandle);
- DWORD VerifyAdminPIN(USBKEY_HANDLE hHandle, char* pPIN);
- DWORD ChangeAdminPIN(USBKEY_HANDLE hHandle,char* pOldPin, char* pNewPin);
- DWORD CreateDataFile(USBKEY_HANDLE hHandle, unsigned int nFileLength, unsigned int nFileID);
- DWORD WriteDataFile(USBKEY_HANDLE hHandle, unsigned int nFileID, unsigned int wOffset, BYTE * pInData, unsigned int nDataLen, unsigned int nFileSize);
- DWORD ReadDataFile(USBKEY_HANDLE hHandle, unsigned int nFileID, unsigned int wOffset, BYTE * pOutData, unsigned int nDataLen);
- DWORD DeleteDataFile(USBKEY_HANDLE hHandle, unsigned int nFileID);
- DWORD GetFileLen(USBKEY_HANDLE hHandle, unsigned int nFileID, unsigned int* pFileLen);
- DWORD WriteExeFile(USBKEY_HANDLE hHandle, unsigned int nFileID, BYTE * pInData, unsigned int nDataLen, unsigned int nFileSize);
- DWORD GetLogFileLength(USBKEY_HANDLE hHandle, int* pFileLen);
- DWORD ReadLogFile(USBKEY_HANDLE hHandle, BYTE* pOutData, int nDataLen);
- DWORD WriteLogFile(USBKEY_HANDLE hHandle, BYTE* pInData, int nDataLen);
- DWORD DeleteLogFile(USBKEY_HANDLE hHandle);
- DWORD WritePrivateKey(USBKEY_HANDLE hHandle, BYTE * pInData, int nDataLen);
- DWORD CreatePrivateKey(USBKEY_HANDLE hHandle, int nFileLen);
- DWORD DeletePrivateKey(USBKEY_HANDLE hHandle);
- DWORD DeleteAllFile(USBKEY_HANDLE hHandle);
- DWORD GenUniqueKey(USBKEY_HANDLE hHandle,char* pAdminPin, char* pUserPin);
- DWORD ProtocolSwitch(USBKEY_HANDLE hHandle, int nFlag);
- DWORD GetHIDFromUKey(char *strHID);
- USBKEY_HANDLE m_hHandle;
- DONGLE_INFO m_stDongleInfo;
- string m_strAdminPIN;
- CLogFile* m_log;
- };
|