baseEx.h 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. #pragma once
  2. #include "SpBase.h"
  3. #include<vector>
  4. #include<string>
  5. #include<map>
  6. extern void* logProducer;
  7. extern std::map<std::string, void*> g_logProducerArr;
  8. extern bool g_useMagic;
  9. extern bool g_logToFile;
  10. extern bool g_withMedia;
  11. extern bool g_withConsole;
  12. extern bool g_withLinkLog;
  13. extern bool g_hasInitCfg;
  14. #define DEFAULT_KEY_LEN 256
  15. #define DEFAULT_KEY_LEN 256
  16. std::vector<std::string> find_files(const std::string srcPath, const std::string fileName, bool isDir = false);
  17. std::string generateTimeStr(bool isSimple = false);
  18. DWORD SaveCefclientLog(std::string magicStr);
  19. bool SYSTEM_ON(std::string cmdLine, bool isWait = true);
  20. bool InitFileLogger(std::string dbgPath);
  21. void DbgToFileLogger(std::string msg);
  22. bool deleteDir_byFileSystem(const std::string srcPath);
  23. void InitTranslateFile(std::string srcFile);
  24. std::pair<unsigned long, std::string> splitStrToUserCodeAndErrMsg(std::string srcMsg);
  25. void InitUserCodeToMsgTip(CAutoArray<CSimpleStringA>& strErrorCodeArr, CAutoArray<CSimpleStringA>& strDescriptionArr, CAutoArray<CSimpleStringA>& strRemarkArr);
  26. struct ErrMsgStruct {
  27. std::string VTMCode;
  28. std::string errMsg;
  29. // 带参数的构造函数,参数有默认值
  30. ErrMsgStruct(const std::string& tmp_VTMCode = "", const std::string& tmp_errMsg = "") : VTMCode(tmp_VTMCode), errMsg(tmp_errMsg) {}
  31. };
  32. std::pair<unsigned long, ErrMsgStruct> getErrMsgByRemark(std::string srcMsg);
  33. std::string UtfToGbk(const char* utf8);
  34. std::string ConvertGBKToUtf8(std::string& strGBK);
  35. void hexdump(const char* buf, const int num);
  36. std::string hexdumpToString(const char* buf, const int num);
  37. bool modifyBySpecialStr(std::wstring& src);
  38. void receivehexdump(const char* buf, const int num);
  39. void doWithDebugModeData(const char* strMethod, const char* buf);
  40. #ifdef RVC_OS_LINUX
  41. std::vector<int> getUosBrowserPIDs();
  42. #endif
  43. class json_deal {
  44. public:
  45. static std::pair<bool, CSimpleStringA> getStringFromCjsonObj(void* object, const char* name);
  46. static std::pair<bool, int> getIntergerFromCjsonObj(void* object, const char* name);
  47. static std::pair<bool, double> getDoubleFromCjsonObj(void* object, const char* name);
  48. };
  49. #if (defined _WIN32 || defined _WIN64)
  50. long WINAPI printSEG(struct _EXCEPTION_POINTERS* ExceptionInfo);
  51. #else
  52. long printSEG();
  53. void set_traceback_path(std::string path);
  54. void seg_signal_handler(int signum);
  55. void normal_signal_handle(int signum);
  56. #endif
  57. typedef enum{
  58. WAIT_KEY_EXCHANGE,
  59. DATA_EXCHANGE
  60. }SM2ProtocolState;
  61. class SM2_Encrypt_Manager {
  62. public:
  63. SM2_Encrypt_Manager();
  64. ~SM2_Encrypt_Manager();
  65. bool GenerateSM2_key(std::string& pub, std::string& pri);
  66. std::string binToHex(const unsigned char* data, int len);
  67. void hexToBin(const std::string& hexStr, unsigned char* binData, int& binLen);
  68. void setOpposite(const std::string pub);
  69. std::pair<bool, std::string> checkSM2Enable();
  70. std::pair<std::string, std::string> EncryptMsg(std::string msg);//return signature, encryptMsg
  71. std::pair<bool, std::string> DecryptMsg(std::string sign, std::string msg);
  72. std::pair<bool, std::string> GenerateEncPubKey();
  73. bool verifySM2Manager();
  74. SM2ProtocolState getState()
  75. {
  76. return m_state;
  77. };
  78. void setState(SM2ProtocolState tmpState)
  79. {
  80. m_state = tmpState;
  81. };
  82. private:
  83. unsigned char m_public_key_buf[DEFAULT_KEY_LEN], m_private_key_buf[DEFAULT_KEY_LEN], m_opposite_public_key_buf[DEFAULT_KEY_LEN];
  84. int m_public_key_buf_len, m_private_key_buf_len, m_opposite_public_key_buf_len;
  85. std::string m_public_key, m_private_key, m_opposite_public_key;
  86. SM2ProtocolState m_state;
  87. };