RocArmTime.h 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #pragma once
  2. #include "DeviceBaseClass.h"
  3. #include "Dongle_API.h"
  4. #include "stdio.h"
  5. #include "logfile.h"
  6. #include <string>
  7. #define NORMAL_RIGHT 0 //最小匿名权限
  8. #define USER_RIGHT 1 //最小用户权限
  9. #define ADMIN_RIGHT 2 //最小开发商权限
  10. #define ROCKEYARM_DEFAULT_ADMIN_PIN "FFFFFFFF" //默认开发商PIN码
  11. #define ROCKEYARM_DEFAULT_USER_PIN "12345678" //默认用户PIN码
  12. #define MAX_DATAFILE_SIZE 4096 //数据文件最大长度
  13. //可执行文件路径
  14. #define ROCARM_READ_DATAFILE_EXE "readDataFile.bin"
  15. #define ROCARM_WRITE_DATAFILE_EXE "writeDataFile.bin"
  16. #define ROCARM_WRITE_TDESKEY_EXE "writeTDESKey.bin"
  17. //文件ID定义
  18. #define PRIVATE_KEY_ID 0x0001 //私钥文件ID
  19. #define USER_CERT_ID 0x0002 //用户证书ID
  20. #define WRITE_TDES_EXE_ID 0x0010 //写TDES密钥的exe文件ID
  21. #define WRITE_DATA_FILE_EXE_ID 0x0012 //写数据文件的exe文件ID
  22. #define READ_DATA_FILE_EXE_ID 0x0013 //读数据文件可执行文件ID
  23. #define READ_LOG_FILE_EXE_ID 0x0014 //读日志文件可执行文件ID
  24. #define ROOT_CA_CERT_ID 0x0021 //总行根证书
  25. #define SUB_CA_CERT_ID 0x0022 //分行证书
  26. #define DEVICE_ID_LIST 0x0031 //准入设备列表
  27. #define TDES_KEY_ID 0x3333 //3DES通信密钥ID
  28. #define INPUT_NULL_ERR 0xF1000001 // 输入参数为空
  29. #define NEW_MEM_ERR 0xF100000e // 申请内存失败
  30. #define OPEN_EXE_FILE_ERR 0xF000001a //打开本地exe文件错误
  31. using namespace std;
  32. class RocArmTime :
  33. public DeviceBaseClass
  34. {
  35. public:
  36. RocArmTime(void);
  37. ~RocArmTime(void);
  38. DWORD FindUsbKey(USBKEY_INFO* pKeyInfo, unsigned int* pCount);
  39. DWORD OpenUsbKey(USBKEY_HANDLE *pHandle,unsigned int Item);
  40. DWORD CloseUsbKey(USBKEY_HANDLE hHandle);
  41. DWORD VerifyAdminPIN(USBKEY_HANDLE hHandle, char* pPIN);
  42. DWORD ChangeAdminPIN(USBKEY_HANDLE hHandle,char* pOldPin, char* pNewPin);
  43. DWORD CreateDataFile(USBKEY_HANDLE hHandle, unsigned int nFileLength, unsigned int nFileID);
  44. DWORD WriteDataFile(USBKEY_HANDLE hHandle, unsigned int nFileID, unsigned int wOffset, BYTE * pInData, unsigned int nDataLen, unsigned int nFileSize);
  45. DWORD ReadDataFile(USBKEY_HANDLE hHandle, unsigned int nFileID, unsigned int wOffset, BYTE * pOutData, unsigned int nDataLen);
  46. DWORD DeleteDataFile(USBKEY_HANDLE hHandle, unsigned int nFileID);
  47. DWORD GetFileLen(USBKEY_HANDLE hHandle, unsigned int nFileID, unsigned int* pFileLen);
  48. DWORD WriteExeFile(USBKEY_HANDLE hHandle, unsigned int nFileID, BYTE * pInData, unsigned int nDataLen, unsigned int nFileSize);
  49. DWORD GetLogFileLength(USBKEY_HANDLE hHandle, int* pFileLen);
  50. DWORD ReadLogFile(USBKEY_HANDLE hHandle, BYTE* pOutData, int nDataLen);
  51. DWORD WriteLogFile(USBKEY_HANDLE hHandle, BYTE* pInData, int nDataLen);
  52. DWORD DeleteLogFile(USBKEY_HANDLE hHandle);
  53. DWORD WritePrivateKey(USBKEY_HANDLE hHandle, BYTE * pInData, int nDataLen);
  54. DWORD CreatePrivateKey(USBKEY_HANDLE hHandle, int nFileLen);
  55. DWORD DeletePrivateKey(USBKEY_HANDLE hHandle);
  56. DWORD DeleteAllFile(USBKEY_HANDLE hHandle);
  57. DWORD GenUniqueKey(USBKEY_HANDLE hHandle,char* pAdminPin, char* pUserPin);
  58. DWORD ProtocolSwitch(USBKEY_HANDLE hHandle, int nFlag);
  59. DWORD GetHIDFromUKey(char *strHID);
  60. USBKEY_HANDLE m_hHandle;
  61. DONGLE_INFO m_stDongleInfo;
  62. string m_strAdminPIN;
  63. CLogFile* m_log;
  64. };