function_test.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. """
  2. 功能测试http接口
  3. """
  4. from flask import Blueprint, request, send_file, jsonify
  5. from watermark_generate.exceptions import BusinessException
  6. from watermark_generate import logger
  7. from watermark_generate.tools import sign_verify
  8. test = Blueprint('test', __name__)
  9. @test.route('/test/sign', methods=['POST'])
  10. def test_sign():
  11. """
  12. 远程测试签名功能
  13. raw_data: 待签名的原文信息
  14. :return: 签名值,公钥证书
  15. """
  16. data = request.json
  17. logger.info(f'sign test request: {data}')
  18. # 获取请求参数
  19. raw_data = data.get('raw_data')
  20. if raw_data is None:
  21. raise BusinessException(message='原文不可为空', code=-1)
  22. sign_data, public_key = sign_verify.get_sign(raw_data)
  23. return jsonify({'sign_data': sign_data, 'public_key': public_key}), 200
  24. @test.route('/test/verify', methods=['POST'])
  25. def test_verify():
  26. """
  27. 远程测试验签功能
  28. raw_data: 待签名的原文信息
  29. sign_data: 签名值
  30. public_key: 签名公钥
  31. :return: 验签结果
  32. """
  33. data = request.json
  34. logger.info(f'sign test request: {data}')
  35. # 获取请求参数
  36. raw_data = data.get('raw_data')
  37. sign_data = data.get('sign_data')
  38. public_key = data.get('public_key')
  39. if raw_data is None:
  40. raise BusinessException(message='原文不可为空', code=-1)
  41. if sign_data is None:
  42. raise BusinessException(message='签名值不可为空', code=-1)
  43. if public_key is None:
  44. raise BusinessException(message='公钥不可为空', code=-1)
  45. verify_result = sign_verify.verify_sign(raw_data, sign_data, public_key)
  46. return jsonify({'verify_result': verify_result}), 200