# P7批量签名
用户对某数据进行P7批量签名操作
# 一、请求说明
- 请求地址:http://IP:PORT/openapi/kms/v1/sign/p7/batch
- 服务接口名称(即公共参数method的值): sign/p7/batch
- 请求方式:POST
# 二、请求参数
| 名称 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| dataList | String | 是 | 待签名数据集合 |
| dataType | DataType | 是 | 待签名数据格式 |
| signatureAlgorithm | SignatureAlgorithm | 否 | 签名算法 |
| signDataType | DataType | 否 | 签名后数据格式 (base64、hex) |
| returnCert | Boolean | 否 | 响应中是否包含证书内容 |
| authorizationCode | String | 是 | 授权码 |
| attach | Boolean | 否 | 签名是否包含原文 |
注:当待签名数据格式为摘要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 | 证书不存在 |
# 四、成功示例
JSON示例
{
"code":0,
"message":"success",
"requestId":"xxx",
"data":{
}
}
# 五、失败示例
JSON示例
{
"code":10024,
"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);
P7SignBatchRequest request = new P7SignBatchRequest();
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("wUFAMldMYUPC4OVdQ5S93");
//签名结果中是否包含原文
request.setAttach(false);
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();
}
← P1批量签名