paddle_encrypt_tool.cpp 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. #include <iostream>
  2. #include <cstring>
  3. #include "model_code.h"
  4. #include "paddle_model_encrypt.h"
  5. // #include "paddle_inference_api.h"
  6. #ifdef linux
  7. #define RESET "\033[0m"
  8. #define BOLD "\033[1m"
  9. #define BOLDGREEN "\033[1m\033[32m"
  10. #elif WIN32
  11. #define RESET ""
  12. #define BOLD ""
  13. #define BOLDGREEN ""
  14. #endif
  15. void help() {
  16. std::cout << BOLD << "*** paddle_encrypt_tool Usage ***" << RESET << std::endl;
  17. std::cout << "[1]Help:" << std::endl;
  18. std::cout << "\t-h" << std::endl;
  19. std::cout << "[2]Generate random key and encrypt dir files" << std::endl;
  20. std::cout << "\t-model_dir\tmodel_dir_ori\t-save_dir\tencrypted_models" << std::endl;
  21. std::cout << "[3]Generate random key for encrypt file" << std::endl;
  22. std::cout << "\t-g" << std::endl;
  23. std::cout << "[4]Encrypt file:" << std::endl;
  24. std::cout << "\t-e\t-key\tkeydata\t-infile\tinfile\t-outfile\toutfile" << std::endl;
  25. }
  26. int main(int argc, char** argv) {
  27. switch (argc) {
  28. case 2:
  29. if (strcmp(argv[1], "-g") == 0) {
  30. std::cout << BOLD << "Generate key success: \n\t" << RESET << BOLDGREEN << paddle_generate_random_key()
  31. << RESET << std::endl;
  32. } else {
  33. help();
  34. }
  35. break;
  36. case 5:
  37. if (strcmp(argv[1], "-model_dir") == 0 && strcmp(argv[3], "-save_dir") == 0) {
  38. std::string key_random = paddle_generate_random_key();
  39. std::cout << BOLD << "Output: " << "Encryption key: \n\t" << RESET << BOLDGREEN
  40. << key_random << RESET << std::endl;
  41. int ret = paddle_encrypt_dir(key_random.c_str(), argv[2], argv[4]);
  42. switch (ret) {
  43. case CODE_OK:
  44. std::cout << "Success, Encrypt __model__, __params__ to " << argv[4] << "(dir) success!"
  45. << std::endl;
  46. break;
  47. case CODE_MODEL_FILE_NOT_EXIST:
  48. std::cout << "Failed, errorcode = " << ret << ", could't find __model__(file) in " << argv[2]
  49. << std::endl;
  50. break;
  51. case CODE_MODEL_YML_FILE_NOT_EXIST:
  52. std::cout << "Failed, errorcode = " << ret << ", could't find model.yml(file) in " << argv[2]
  53. << std::endl;
  54. break;
  55. case CODE_PARAMS_FILE_NOT_EXIST:
  56. std::cout << "Failed, errorcode = " << ret << ", could't find __params__(file) in " << argv[2]
  57. << std::endl;
  58. break;
  59. case CODE_NOT_EXIST_DIR:
  60. std::cout << "Failed, errorcode = " << ret << ", " << argv[2] << "(dir) not exist" << std::endl;
  61. break;
  62. case CODE_FILES_EMPTY_WITH_DIR:
  63. std::cout << "Failed, errorcode = " << ret << ", could't find any files in " << argv[2]
  64. << std::endl;
  65. break;
  66. default:std::cout << "Failed, errorcode = " << ret << ", others" << std::endl;
  67. break;
  68. }
  69. } else {
  70. help();
  71. }
  72. break;
  73. case 8:
  74. if (strcmp(argv[1], "-e") == 0 && strcmp(argv[2], "-key") == 0 && strcmp(argv[4], "-infile") == 0
  75. && strcmp(argv[6], "-outfile") == 0) {
  76. int ret_encrypt = paddle_encrypt_model(argv[3], argv[5], argv[7]);
  77. if (ret_encrypt == 0) {
  78. std::cout << "Encrypt " << argv[5] << "(file) to " << argv[7] << "(file) success" << std::endl;
  79. } else {
  80. std::cout << "Encrypt " << argv[5] << " failed, ret = " << ret_encrypt << std::endl;
  81. }
  82. } else {
  83. help();
  84. }
  85. break;
  86. default:help();
  87. }
  88. #ifdef WIN32
  89. system("pause");
  90. #endif
  91. return 0;
  92. }