業(yè)務(wù)文檔
- 實(shí)名認(rèn)證服務(wù)
- 數(shù)字證書(shū)服務(wù)
-
時(shí)間戳服務(wù)
- · 概述
- · 前提條件
- · 通用約束
- · 安全性設(shè)計(jì)
- · 服務(wù)接口定義
- 存證服務(wù)
- 風(fēng)險(xiǎn)識(shí)別服務(wù)
業(yè)務(wù)文檔
5.1 RFC3161標(biāo)準(zhǔn)協(xié)議接口定義
名稱(chēng) | 內(nèi)容 |
接口說(shuō)明 | RFC3161協(xié)議簽發(fā)時(shí)間戳 |
請(qǐng)求地址 | 生產(chǎn)環(huán)境: https://open.itruscloud.com/apigate/timestampapi?serviceCode=TSA0005 測(cè)試環(huán)境: https://demo-open.itruscloud.com/apigate/timestampapi?serviceCode=TSA0005 |
賬號(hào) | 應(yīng)用appid |
密碼 | JSON |
輸出示例 | 1. 成功返回 會(huì)在指定的路徑下生產(chǎn)pdf文件 2. 失敗返回 2.1 app沒(méi)有添加服務(wù)或者購(gòu)買(mǎi)數(shù)量不足 java.io.IOException: Server returned HTTP response code: 401 for URL: https://demo-open.itruscloud.com/apigate/timestampapi?serviceCode=TSA0005 如果還是不能確定問(wèn)題在哪,需要看apigate網(wǎng)關(guān)的日志排查,因?yàn)檫@個(gè)401是網(wǎng)關(guān)返回的。 |
5.2 簽戳服務(wù)接口定義
基本信息:
名稱(chēng) | 內(nèi)容 |
接口說(shuō)明 | 簽發(fā)時(shí)間戳 |
請(qǐng)求地址 | 生產(chǎn)環(huán)境: https://open.itruscloud.com/apigate/timestampapi 測(cè)試環(huán)境: https://demo-open.itruscloud.com/apigate/timestampapi |
請(qǐng)求方法 | POST |
應(yīng)答格式 | JSON |
HEAD參數(shù) | Content-Signature:“HMAC-SHA1 ”加hmac簽名值,采用HmacSHA1算法 |
請(qǐng)求參數(shù):
名稱(chēng) | 類(lèi)型 | 約束 | 描述 |
plainHash | String | 必選 | 原文hash的hex編碼 |
hashAlg | String | 必選 | 原文Hash算法??蛇x值為“SHA1”或者“SM3” |
返回值:
名稱(chēng) | 類(lèi)型 | 描述 |
status | String | status的值為1表示簽戳成功, 其他表示簽戳失敗 |
message | String | 對(duì)應(yīng)狀態(tài)信息說(shuō)明 或 失敗原因 |
serialNumber | String | 流水號(hào) |
b64TimeStamp | String | base64編碼后的時(shí)間戳數(shù)據(jù)。如果簽戳失敗,返回為“”。 |
signTime | Date | 時(shí)間戳簽發(fā)時(shí)間,格式為"yyyy-MM-dd HH:mm:ss"。如果簽戳失敗,返回為“”。 |
輸出示例 | 1. 成功返回 { "serialNumber":"TSA202007131445390545087", "b64TimeStamp":"時(shí)間戳base64字符串", "signTime":"2020-07-13 14:45:39", "message":"success.", "status":"1" } 2. 失敗返回 2.1原文字符串plainHash錯(cuò)誤 { "serialNumber":"TSA202007131632418306001", "b64TimeStamp":"", "signTime":"", "message":"generated timestamp failed. errCode : 65547, errMsg : 1000B.", "status":"251658246" } 注: 目前這個(gè)錯(cuò)在錯(cuò)誤碼中沒(méi)有 2.2原文hash算法hashAlg錯(cuò)誤 {"data":"101003","message":"原文的hash算法不支持","status":200} |
5.3 驗(yàn)戳接口定義
名稱(chēng) | 內(nèi)容 |
接口說(shuō)明 | 驗(yàn)證時(shí)間戳 |
請(qǐng)求地址 | 生產(chǎn)環(huán)境: https://open.itruscloud.com/apigate/timestampapi 測(cè)試環(huán)境: https://demo-open.itruscloud.com/apigate/timestampapi |
請(qǐng)求方法 | POST |
應(yīng)答格式 | JSON |
HEAD參數(shù) | Content-Signature:“HMAC-SHA1 ”加hmac簽名值,采用HmacSHA1算法 |
請(qǐng)求參數(shù):
名稱(chēng) | 類(lèi)型 | 約束 | 描述 |
plainHash | String | 必選 | 原文hash的hex編碼 |
hashAlg | String | 必選 | 原文Hash算法。可選值為“SHA1”或者“SM3” |
b64TimeStamp | String | 必選 | base64編碼后的時(shí)間戳數(shù)據(jù) |
返回值:
名稱(chēng) | 類(lèi)型 | 描述 |
status | Long | 1表示調(diào)用成功,其他表示調(diào)用失敗 |
message | String | 對(duì)應(yīng)狀態(tài)信息說(shuō)明 或 失敗原因 |
verifyResult | Boolean | 驗(yàn)證結(jié)果,true表示時(shí)間戳驗(yàn)證通過(guò),false表示時(shí)間戳驗(yàn)證未通過(guò) |
verifyResultStr | String | 驗(yàn)證結(jié)果信息 |
serialNumber | String | 流水號(hào) |
signAlg | String | 采用的簽名算法,SHA1withRSA或SM3withSM2。如果驗(yàn)證失敗,返回為“”。 |
signTime | Date | 時(shí)間戳簽發(fā)時(shí)間,格式為"yyyy-MM-dd HH:mm:ss"。如果驗(yàn)證失敗,返回為“”。 |
輸出示例 | 3. 成功返回 { "orderNumber":"TSA202007131650128508820", "signTime":"2020-07-06 14:05:12", "verifyResultStr":"verify success", "signAlg":"SHA1withRSA", "verifyResult":true, "message":"success", "status":"1" } 4. 失敗返回 2.1原文字符串plainHash錯(cuò)誤 { "orderNumber":"TSA202007131811018147744", "signTime":"", "verifyResultStr":"", "signAlg":"", "verifyResult":false, "message":"success. errCode : 65547, errMsg : 1000B.", "status":"251658244" } 注: 目前這個(gè)錯(cuò)在錯(cuò)誤碼中沒(méi)有
2.2 原文hash算法hashAlg錯(cuò)誤 { "orderNumber":"TSA202007131808545736474", "signTime":"", "verifyResultStr":"wrong plain hash or hash alg.", "signAlg":"", "verifyResult":false, "message":"success", "status":"1" }
2.3待驗(yàn)證的時(shí)間戳b64TimeStamp錯(cuò)誤 {"message":"接口調(diào)用異常","status":100008}
2.4 驗(yàn)戳?xí)r使用的serviceCode與簽戳?xí)r使用的serviceCode的證書(shū)算法不一致 比如,簽戳?xí)r用TSA0001(這個(gè)產(chǎn)品使用的是rsa證書(shū)),驗(yàn)戳?xí)r使用TSA0004(這個(gè)產(chǎn)品使用的是SM2證書(shū))或者其他編碼,兩者使用的證書(shū)算法不一致。 { "orderNumber":"TSA202007141855201804606", "signTime":"", "verifyResultStr":"no found match cert.", "signAlg":"", "verifyResult":false, "message":"success", "status":"1" } |