""" 功能测试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