baseEx.h 3.1 KB

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