baseEx.h 3.5 KB

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