function_test.py 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. """
  2. 功能测试http接口
  3. """
  4. import time
  5. from flask import Blueprint, request, jsonify
  6. from watermark_generate.exceptions import BusinessException
  7. from watermark_generate import logger
  8. from watermark_generate.tools import sign_verify, secret_label_func
  9. test = Blueprint('test', __name__)
  10. @test.route('/test/sign', methods=['POST'])
  11. def test_sign():
  12. """
  13. 远程测试签名功能
  14. raw_data: 待签名的原文信息
  15. :return: 签名值,公钥证书
  16. """
  17. data = request.json
  18. logger.info(f'sign test request: {data}')
  19. # 获取请求参数
  20. raw_data = data.get('raw_data')
  21. if raw_data is None:
  22. raise BusinessException(message='原文不可为空', code=-1)
  23. sign_data, public_key = sign_verify.get_sign(raw_data)
  24. return jsonify({'sign_data': sign_data, 'public_key': public_key}), 200
  25. @test.route('/test/verify', methods=['POST'])
  26. def test_verify():
  27. """
  28. 远程测试验签功能
  29. raw_data: 待签名的原文信息
  30. sign_data: 签名值
  31. public_key: 签名公钥
  32. :return: 验签结果
  33. """
  34. data = request.json
  35. logger.info(f'sign test request: {data}')
  36. # 获取请求参数
  37. raw_data = data.get('raw_data')
  38. sign_data = data.get('sign_data')
  39. public_key = data.get('public_key')
  40. if raw_data is None:
  41. raise BusinessException(message='原文不可为空', code=-1)
  42. if sign_data is None:
  43. raise BusinessException(message='签名值不可为空', code=-1)
  44. if public_key is None:
  45. raise BusinessException(message='公钥不可为空', code=-1)
  46. verify_result = sign_verify.verify_sign(raw_data, sign_data, public_key)
  47. return jsonify({'verify_result': verify_result}), 200
  48. @test.route('/test/generate_label', methods=['POST'])
  49. def test_generate_label():
  50. data = request.json
  51. logger.info(f'test generate label: {data}')
  52. raw_data = data.get('raw_data')
  53. raw_data = str(int(time.time()))
  54. if raw_data is None:
  55. raise BusinessException(message='原文值不可为空', code=-1)
  56. secret_label, public_key = secret_label_func.generate_secret_label(raw_data)
  57. return jsonify({'secret_label': secret_label, 'public_key': public_key}), 200
  58. @test.route('/test/verify_label', methods=['POST'])
  59. def test_verify_label():
  60. data = request.json
  61. logger.info(f'test verify label: {data}')
  62. secret_label = data.get('secret_label')
  63. public_key = data.get('public_key')
  64. if secret_label is None:
  65. raise BusinessException(message='密码标签不可为空', code=-1)
  66. if public_key is None:
  67. raise BusinessException(message='签名公钥不可为空', code=-1)
  68. verify_result = secret_label_func.verify_secret_label(secret_label, public_key)
  69. return jsonify({'verify_result': verify_result}), 200