123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- """
- 功能测试http接口
- """
- import time
- from flask import Blueprint, request, jsonify
- from watermark_generate.exceptions import BusinessException
- from watermark_generate import logger
- from watermark_generate.tools import sign_verify, secret_label_func
- test = Blueprint('test', __name__)
- @test.route('/test/sign', methods=['POST'])
- def test_sign():
- """
- 远程测试签名功能
- raw_data: 待签名的原文信息
- :return: 签名值,公钥证书
- """
- data = request.json
- logger.info(f'sign test request: {data}')
- # 获取请求参数
- raw_data = data.get('raw_data')
- if raw_data is None:
- raise BusinessException(message='原文不可为空', code=-1)
- sign_data, public_key = sign_verify.get_sign(raw_data)
- return jsonify({'sign_data': sign_data, 'public_key': public_key}), 200
- @test.route('/test/verify', methods=['POST'])
- def test_verify():
- """
- 远程测试验签功能
- raw_data: 待签名的原文信息
- sign_data: 签名值
- public_key: 签名公钥
- :return: 验签结果
- """
- data = request.json
- logger.info(f'sign test request: {data}')
- # 获取请求参数
- raw_data = data.get('raw_data')
- sign_data = data.get('sign_data')
- public_key = data.get('public_key')
- if raw_data is None:
- raise BusinessException(message='原文不可为空', code=-1)
- if sign_data is None:
- raise BusinessException(message='签名值不可为空', code=-1)
- if public_key is None:
- raise BusinessException(message='公钥不可为空', code=-1)
- verify_result = sign_verify.verify_sign(raw_data, sign_data, public_key)
- return jsonify({'verify_result': verify_result}), 200
- @test.route('/test/generate_label', methods=['POST'])
- def test_generate_label():
- data = request.json
- logger.info(f'test generate label: {data}')
- raw_data = data.get('raw_data')
- raw_data = str(int(time.time()))
- if raw_data is None:
- raise BusinessException(message='原文值不可为空', code=-1)
- secret_label, public_key = secret_label_func.generate_secret_label(raw_data)
- return jsonify({'secret_label': secret_label, 'public_key': public_key}), 200
- @test.route('/test/verify_label', methods=['POST'])
- def test_verify_label():
- data = request.json
- logger.info(f'test verify label: {data}')
- secret_label = data.get('secret_label')
- public_key = data.get('public_key')
- if secret_label is None:
- raise BusinessException(message='密码标签不可为空', code=-1)
- if public_key is None:
- raise BusinessException(message='签名公钥不可为空', code=-1)
- verify_result = secret_label_func.verify_secret_label(secret_label, public_key)
- return jsonify({'verify_result': verify_result}), 200
|