""" 密码标签生成验证http接口 """ from flask import Blueprint, request from watermark_generate.tools import secret_func from watermark_generate.domain import * from watermark_generate.tools import logger_tool from watermark_generate.tools.secret_func import verify_signature secret = Blueprint('secret', __name__) logger = logger_tool.logger @secret.route('/znwr/jit/ai/v1/crypto-label', methods=['POST']) def gen_crypto_label(): """ 生成密码标签 :return: 密码标签 """ logger.debug(f'调用生成密码标签接口,request:{request.json}') gen_label_form = GenLabelFormSchema().load(request.json) # 反序列化 JSON 数据为对象 info = gen_label_form.info owner = info.owner model = info.model try: secret = secret_func.get_secret(512) cert = '' except Exception as e: logger.error(e) return {'code': -1, 'msg': '生成密码标签失败'} logger.debug('密码标签生成成功') resp = GenLabelResp(code=0, msg='ok', label=secret, cert=cert) return GenLabelRespSchema().dump(resp) @secret.route('/znwr/jit/ai/v1/crypto-check', methods=['POST']) def self_test_crypto_label(): """ 密码标签功能自检 :return: 自检结果 """ try: logger.debug('开始获取密码标签...') label = secret_func.get_secret(512) logger.debug(f'label:{label}') result = secret_func.verify(label) logger.debug(f'验证结果:{result}') except Exception as e: logger.error(e) return VerifyLabelRespSchema().dump(VerifyLabelResp(code=-1, msg='生成密码标签失败')) resp = VerifyLabelResp(code=0, msg='ok') if result else VerifyLabelResp(code=-1, msg='验证密码标签失败') return VerifyLabelRespSchema().dump(resp) @secret.route('/znwr/jit/ai/v1/verify-label', methods=['POST']) def verify_crypto_label(): """ 密码标签验证 :return: 验证结果 """ logger.debug(f'request:{request.json}') verify_label_form = VerifyLabelFormSchema().load(request.json) label = verify_label_form.label info = verify_label_form.info cert = verify_label_form.cert result = secret_func.verify(label) logger.debug(f'验证结果:{result}') resp = VerifyLabelResp(code=0, msg='ok') if result else VerifyLabelResp(code=-1, msg='密码标签验证失败') return VerifyLabelRespSchema().dump(resp) @secret.route('/znwr/jit/ai/v1/verify-sign', methods=['POST']) def verify_signature_handle(): """ 验签功能处理 :return: 验签结果 """ logger.debug(f'verify-sign request:{request.json}') verify_signature_form = VerifySignatureFormSchema().load(request.json) original = verify_signature_form.original signature = verify_signature_form.signature cert = verify_signature_form.cert result = verify_signature(original=original, signature=signature, cert=cert) resp = VerifyLabelResp(code=0, msg='ok') if result else VerifyLabelResp(code=-1, msg='验签失败') return VerifyLabelRespSchema().dump(resp)