secret_controller.py 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. """
  2. 密码标签生成验证http接口
  3. """
  4. from flask import Blueprint, request
  5. from watermark_generate.tools import secret_func
  6. from watermark_generate.domain import *
  7. from watermark_generate.tools import logger_tool
  8. from watermark_generate.tools.secret_func import verify_signature
  9. secret = Blueprint('secret', __name__)
  10. logger = logger_tool.logger
  11. @secret.route('/znwr/jit/ai/v1/crypto-label', methods=['POST'])
  12. def gen_crypto_label():
  13. """
  14. 生成密码标签
  15. :return: 密码标签
  16. """
  17. logger.debug(f'调用生成密码标签接口,request:{request.json}')
  18. gen_label_form = GenLabelFormSchema().load(request.json) # 反序列化 JSON 数据为对象
  19. info = gen_label_form.info
  20. owner = info.owner
  21. model = info.model
  22. try:
  23. secret = secret_func.get_secret(512)
  24. cert = ''
  25. except Exception as e:
  26. logger.error(e)
  27. return {'code': -1, 'msg': '生成密码标签失败'}
  28. logger.debug('密码标签生成成功')
  29. resp = GenLabelResp(code=0, msg='ok', label=secret, cert=cert)
  30. return GenLabelRespSchema().dump(resp)
  31. @secret.route('/znwr/jit/ai/v1/crypto-check', methods=['POST'])
  32. def self_test_crypto_label():
  33. """
  34. 密码标签功能自检
  35. :return: 自检结果
  36. """
  37. try:
  38. logger.debug('开始获取密码标签...')
  39. label = secret_func.get_secret(512)
  40. logger.debug(f'label:{label}')
  41. result = secret_func.verify(label)
  42. logger.debug(f'验证结果:{result}')
  43. except Exception as e:
  44. logger.error(e)
  45. return VerifyLabelRespSchema().dump(VerifyLabelResp(code=-1, msg='生成密码标签失败'))
  46. resp = VerifyLabelResp(code=0, msg='ok') if result else VerifyLabelResp(code=-1, msg='验证密码标签失败')
  47. return VerifyLabelRespSchema().dump(resp)
  48. @secret.route('/znwr/jit/ai/v1/verify-label', methods=['POST'])
  49. def verify_crypto_label():
  50. """
  51. 密码标签验证
  52. :return: 验证结果
  53. """
  54. logger.debug(f'request:{request.json}')
  55. verify_label_form = VerifyLabelFormSchema().load(request.json)
  56. label = verify_label_form.label
  57. info = verify_label_form.info
  58. cert = verify_label_form.cert
  59. result = secret_func.verify(label)
  60. logger.debug(f'验证结果:{result}')
  61. resp = VerifyLabelResp(code=0, msg='ok') if result else VerifyLabelResp(code=-1, msg='密码标签验证失败')
  62. return VerifyLabelRespSchema().dump(resp)
  63. @secret.route('/znwr/jit/ai/v1/verify-sign', methods=['POST'])
  64. def verify_signature_handle():
  65. """
  66. 验签功能处理
  67. :return: 验签结果
  68. """
  69. logger.debug(f'verify-sign request:{request.json}')
  70. verify_signature_form = VerifySignatureFormSchema().load(request.json)
  71. original = verify_signature_form.original
  72. signature = verify_signature_form.signature
  73. cert = verify_signature_form.cert
  74. result = verify_signature(original=original, signature=signature, cert=cert)
  75. resp = VerifyLabelResp(code=0, msg='ok') if result else VerifyLabelResp(code=-1, msg='验签失败')
  76. return VerifyLabelRespSchema().dump(resp)