# P1批量签名

用户对某数据进行P1批量签名操作

# 一、请求说明

  • 请求地址:http://IP:PORT/openapi/kms/v1/sign/p1/batch
  • 服务接口名称(即公共参数method的值): sign/p1/batch
  • 请求方式:POST

# 二、请求参数

名称 类型 是否必须 描述
dataList String 待签名数据集合
dataType DataType 待签名数据格式
signatureAlgorithm SignatureAlgorithm 签名算法
signDataType DataType 签名后数据格式 (base64、hex)
returnCert Boolean 响应中是否包含证书内容
authorizationCode String 授权码

注:当待签名数据格式为摘要base64或摘要hex时,注意摘要长度应与签名算法对应。具体算法的摘要长度见签名算法字段解释。

  • 字段解释

  • DataType 数据类型介绍

字段 类型介绍
BASE64 原文BASE64
HEX 原文Hex
ORIGINAL 原文
DIGEST_BASE64 摘要base64
DIGEST_HEX 摘要hex
  • SignatureAlgorithm 签名算法介绍
类型字段 介绍
SM3withSM2 SM3withSM2签名算法(摘要长度应为32字节)
SHA1withRSA SHA1withRSA签名算法(摘要长度应为20字节)
SHA256withRSA SHA256withRSA签名算法(摘要长度应为32字节)
SHA512withRSA SHA512withRSA签名算法(摘要长度应为64字节)
  • dataList 待签名数据集合 请使用JSON样式,示例:

["123","345","=;&*abC12!@#$%^&*()\"'<>?:{}_+,.\/;'[]"]

# 三、响应参数

data 结果信息 类型 描述
result Integer 签名结果
cert String 签名证书 仅在配置时返回
signDataList List<SignData> 签名结果集合
  • SignData 签名结果集合介绍
data 结果信息 类型 描述
signData String 签名结果
verification Integer 验证信息状态码
message String 验证提示信息
  • verification 返回码介绍
字段 状态码 状态介绍
SUCCESS 0 验证成功
CERT_NOT_EXIST 8 证书不存在
CES_KEYPAIR_NOT_EXIST 20 密钥不存在或状态异常
CES_KEYPAIR_OPER_NOT_SUPPORTED 21 密钥不支持此操作

# 四、成功示例

JSON示例

{
    "code":0,
    "message":"success",
    "requestId":"xxx",
    "data":{

    }
}

# 五、失败示例

JSON示例

{
    "code": 10023,
    "requestId":"xxx",
    "message": "App被限流",
}

# 六、SDK请求示例


        // 提供的URL
        String url = "http://localhost:9200";

        // 您的appKey
        String appKey = "ULR2shnIb3";

        // 您的appSecret
        String appSecret = "iwJ6Pw8RLVQQox6NPGRRL8zH6z7alPvA";

        // 1.原客户端
        PkiClient pkiClient = new PkiOkhttpClient(url, appKey, appSecret);

        P1SignBatchRequest request = new P1SignBatchRequest();

        List<String> dataList = new ArrayList<>();
        dataList.add("123");
        dataList.add("345");
        //待签名数据
        request.setDataList(dataList);

        //待签名数据类型
        request.setDataType(DataType.ORIGINAL);

        //签名算法
        request.setSignatureAlgorithm(SignatureAlgorithm.SM3withSM2);

        //签名数据类型
        request.setSignDataType(DataType.BASE64);

        //授权码
        request.setAuthorizationCode("RuMuggS0xtRzGZYW3dg4L");

        try {
            SignBatchResponse response = pkiClient.execute(request);
            // 后续业务
            if (response.isSuccess()) {
                System.out.println("成功响应:" + response.getResult());
            } else {
                System.out.println("失败响应:" + response.getBody());
            }
        } catch (ApiException e) {
            e.printStackTrace();
        }
最后更新于: 3/29/2023, 1:48:46 PM