function_test.py 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. """
  2. 功能测试http接口
  3. """
  4. from flask import Blueprint, request, jsonify
  5. from watermark_generate.exceptions import BusinessException
  6. from watermark_generate import logger
  7. from watermark_generate.tools import sign_verify, secret_label_func
  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
  47. @test.route('/test/generate_label', methods=['POST'])
  48. def test_generate_label():
  49. data = request.json
  50. logger.info(f'test generate label: {data}')
  51. raw_data = data.get('raw_data')
  52. if raw_data is None:
  53. raise BusinessException(message='原文值不可为空', code=-1)
  54. secret_label = secret_label_func.generate_secret_label(raw_data)
  55. return jsonify({'secret_label': secret_label}), 200
  56. @test.route('/test/verify_label', methods=['POST'])
  57. def test_verify_label():
  58. data = request.json
  59. logger.info(f'test verify label: {data}')
  60. secret_label = data.get('secret_label')
  61. public_key = data.get('public_key')
  62. if secret_label is None:
  63. raise BusinessException(message='密码标签不可为空', code=-1)
  64. if public_key is None:
  65. raise BusinessException(message='签名公钥不可为空', code=-1)
  66. verify_result = secret_label_func.verify_secret_label(secret_label, public_key)
  67. return jsonify({'verify_result': verify_result}), 200