# 数字信封封包
数字信封封包是使用私钥加密的过程。
# 一、请求说明
- 请求地址:http://IP:PORT/openapi/ces/v1/digital-envelope/packet
- 服务接口名称(即公共参数method的值): digital-envelope/packet
- 请求方式:POST
# 二、请求参数
| 名称 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| encryptType | CertSearchEnum | 是 | 封包方式 |
| encryptItemValue | String | 是 | 封包方式的值 |
| dataType | DataType | 是 | 待封包数据格式(原文、原文base64、原文hex) |
| data | String | 是 | 待封包数据 |
| envelopeDataType | DataType | 是 | 封包后数据格式,(base64 、hex) |
字段解释
CertSearchEnum 封包方式
| 类型字段 | 介绍 |
|---|---|
| CERT | 证书 |
| CERT_ID | 证书ID |
| SN_HEX | 证书序列号(十六进制格式) |
| SN_DEC | 证书序列号(十进制格式) |
| TN_HASH | 证书指纹 |
| CERT_CN | 证书持有者 |
| CERT_DN | 证书主题项 |
- DataType 数据类型介绍
| 字段 | 类型介绍 |
|---|---|
| BASE64 | 原文BASE64 |
| HEX | 原文Hex |
| ORIGINAL | 原文 |
# 三、响应参数
| data 结果信息 | 类型 | 描述 |
|---|---|---|
| packetData | String | 封包结果 |
# 四、成功示例
JSON示例
{
"code": 0,
"message": "success",
"requestId":"xxx",
"data": {
"packetData": "BMY18jZgCLgQ1Jp9rbmQbEo+Pj6vsd7L6+zPv45qyeWkWVws9vxbLHtOcXDuMeRFFER33JP87u4x3mD8chLyKE6xMCzqDCwk+up+RhpO0ppbuXLLKEQNHexGWc2kDOzGdo92RA=="
}
}
# 五、失败示例
JSON示例
{
"code": 10100,
"requestId":"xxx",
"message": "未找到证书",
}
# 六、SDK请求示例
// 提供的URL
String url = "http://172.16.6.76:20501";
// 您的appKey
String appKey = "XXX";
// 您的appSecret
String appSecret = "XXX";
// 1.原客户端
PkiClient client = new PkiOkhttpClient(url, appKey, appSecret);
DigitalEnvelopePacketRequest request = new DigitalEnvelopePacketRequest();
// 通过何种方式进行封包
request.setEncryptType(CertSearchEnum.CERT);
// 封包依据项目的值
request.setEncryptItemValue("");
// 数据格式
request.setDataType(DataType.BASE64);
// 待封包数据
request.setData("test_data");
// 封包后数据格式
request.setEnvelopeDataType(DataType.BASE64);
try {
DigitalEnvelopePacketResponse response = client.execute(request);
// 后续业务
if (response.isSuccess()) {
DigitalEnvelopePacketResponse.Result result = response.getResult();
System.out.println("成功:" + result);
System.out.println("加密结果: "+ result.getPacketData());
} else {
System.out.println("失败:" + response.getBody());
}
} catch (ApiException e) {
e.printStackTrace();
}