密码中台TSS服务API接口文档
签发时间戳
签发时间戳证书。
- 请求方式:POST
- url: http://172.16.3.128:30240/rest/cip/kitty/tss/sop/issue
- contentType:application/json;charset:utf-8
一、请求参数
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
dataType | DataType | 是 | 原文数据类型 |
algo | DegistEnum | 是 | 时间戳摘要算法(SM2为SM3,RSA为SHA256和SHA1) |
data | String | 是 | 原文数据 |
signType | CertSearchEnum | 是 | 签名方式 |
signItemValue | String | 是 | 签名方式的值 |
includeCert | Boolean | 否 | 时间戳中是否包含证书,true:包含,false:不包含 |
注意:先安请求只需要dataType,algo,data三个参数。 |
- 字段解释
- DegistEnum 时间戳摘要算法介绍
字段 | 类型介绍 |
---|---|
SHA1 | SHA1算法 |
SM3 | SM3算法 |
SHA256 | SHA256算法 |
注意:先安请求,当数据类型为摘要时algo支持SM3,SHA256;数据类型为原文时支持所有类型。 |
- DataType 数据类型介绍
字段 | 类型介绍 |
---|---|
BASE64 | 原文BASE64 |
HEX | 原文Hex |
ORIGINAL | 原文 |
DIGEST_BASE64 | 摘要base64 |
DIGEST_HEX | 摘要16进制HEX |
注意:先安请求dataType支持ORIGINAL,DIGEST_BASE64。 |
- CertSearchEnum 签名方式
类型字段 | 类型介绍 |
---|---|
CERT | 证书 |
CERT_ID | 证书ID |
KEY_INDEX | 密钥索引 |
SN_HEX | 证书序列号(十六进制格式) |
SN_DEC | 证书序列号(十进制格式) |
TN_HASH | 证书证书指纹 |
CERT_CN | 证书CN项 |
CERT_DN | 证书主题项 |
注意:对应的证书ID需要对应的摘要算法。仅先安支持密钥索引。 |
二、响应参数
result 结果信息 | 类型 | 描述 |
---|---|---|
tsa | String | 时间戳response Base64 |
signerSn | String | 序列 |
signerDn | String | 签发证书主题项 |
genTime | Date | 时间戳生成时间 |
三、响应示例
成功示例
{ |
失败示例
{ |
SDK请求示例
@Test
public void issue() throws Exception {
//您的url
String url = "http://172.16.3.128:30240/rest/cip/kitty/%s/sop";
//您的appKey
String appKey = "w8MuGC9C";
//您的appSecret
String secretKey = "4wVznIMB";
//构造接口实例D
ApiClient apiClient = new DefaultApiClient(url, appKey, secretKey);
// 实例化接口
TssSopApi tssSopApi = new TssSopApiImpl(apiClient);
TssGenerateRequest tssRequest = new TssGenerateRequest();
String data = "bg+eFDRMVAagz1o7TftmX4f0p3GjH37btccodKMrKVc=";
// String data = "123";
//数据类型
tssRequest.setDataType(DataType.DIGEST_BASE64);
//数据
tssRequest.setData(data);
//时间戳摘要算法
tssRequest.setAlgo(DegistEnum.SM3);
//通过何种方式进行签名
tssRequest.setSignType(CertSearchEnum.CERT_ID);
//签名项目的值
tssRequest.setSignItemValue("62a7f15292c702164b99bc74");
//时间戳中是否包含证书,true:包含,false:不包含
tssRequest.setIncludeCert(Boolean.TRUE);
TssGenerateResponse response = tssSopApi.issue(tssRequest);
//后续业务处理
System.out.println("================================");
System.out.println("响应内容:" + response);
System.out.println("================================");
System.out.println("SDK请求ID:" + response.getRequestId());
System.out.println("SDK响应消息:" + response.getMsg());
System.out.println("SDK响应码:" + response.getErrorCode());
System.out.println("================================");
if (null != response.getResult()) {
System.out.println("tsa:" + response.getResult().getTsa());
System.out.println("SignerDn:" + response.getResult().getSignerDn());
System.out.println("SignerSn:" + response.getResult().getSignerSn());
System.out.println("GenTime:" + response.getResult().getGenTime());
}
}
验证时间戳
验证时间戳。
- 请求方式:POST
- url: http://172.16.3.128:30240/rest/cip/kitty/tss/sop/tssv
- contentType:application/json;charset:utf-8
一、请求参数
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
data | String | 否 | 原文数据 |
tsa | String | 是 | 时间戳(base64) |
dataType | DataType | 否 | 原文数据类型 |
注意:先安请求只需要tsa参数。 |
- DataType 数据类型介绍
字段 | 类型介绍 |
---|---|
BASE64 | 原文BASE64 |
HEX | 原文Hex |
ORIGINAL | 原文 |
DIGEST_BASE64 | 摘要base64 |
DIGEST_HEX | 摘要16进制HEX |
二、响应参数
result 结果信息 | 类型 | 描述 |
---|---|---|
verification | Integer | 验证结果 0-成功 其他-失败 详见失败信息 |
message | String | 验证失败的描述 |
signer | String | 签发者 |
signerDn | String | 签发证书主题项 |
genTime | Date | 时间戳加盖时间 |
- verification 返回码介绍
字段 | 状态码 | 状态介绍 |
---|---|---|
SUCCESS | 0 | 验证成功 |
CERT_EXPIRED | 1 | 证书已过期 |
CERT_INEFFECTIVE | 2 | 证书未生效 |
CERT_USAGE_DEFICIENCY | 3 | 证书密钥用法错误 |
CERT_OU_MISMATCHING | 4 | 证书OU项不匹配 |
CERT_REVOKED | 5 | 证书已注销 |
CERT_UNTRUSTED | 6 | 证书不可信 |
SIGN_INVALID | 7 | 数字签名验证不通过 |
三、请求响应示例
成功示例
{ |
失败示例
{ |
SDK请求示例
@Test |