密码TCP API接口文档

协议

一、请求数据格式

请求数据示例
二、响应数据格式

三、错误码

错误码 错误描述
00 成功响应
90 随机数异常
91 对称密钥解密异常
92 SM2私钥签名异常
93 sm2解密异常
94 无此业务
95 appKey错误
96 索引缺失
97 SM2公钥导出
98 申请指定索引的密钥对异常
99 注销指定索引的密钥对异常
87 SM2公钥验签异常
88 SM2公钥加密异常
89 对称密钥解密异常

四、示例代码

参考api-test-tcp-1.0.0-SNAPSHOT.zip包下的cn.unitid.ca.api.tcp.client.service.impl.MessageServiceImplTest类。

申请随机数

申请随机数。

一、请求响应示例

请求示例

注意:此处省略了内容长度(当前请求的二进制数据长度)

```
请求数据:30303132333435363738ffffffff77384d7547433943ffffffff00000005

响应成功示例

注意:此处省略了内容长度(当前请求的二进制数据长度)

响应数据:30303132333435363738ffffffff77384d75474339433030ffffbc5bcf92a1

对称密钥加密

对称密钥加密。

一、请求响应示例

请求示例

注意:此处省略了内容长度(当前请求的二进制数据长度)

请求数据:303131323334353637380000000148683457514e4b78ffffffff653562653835653538616130653561663836653639356230653638646165

响应成功示例

注意:此处省略了内容长度(当前请求的二进制数据长度)

响应数据:303131323334353637380000000148683457514e4b783030ffffe5313adfdc4f48d285580ca12be58c1ab087289406efa21f08069ed74312518a

对称密钥解密

对称密钥解密。

一、请求响应示例

请求示例

注意:此处省略了内容长度(当前请求的二进制数据长度)

请求数据:303231323334353637380000000177384d7547433943ffffffff43b2dcdefed2ceaf22e47ce153073cb63033b282f8f090dc05d20cc924104ce7

响应成功示例

注意:此处省略了内容长度(当前请求的二进制数据长度)

响应数据:303231323334353637380000000177384d75474339433030ffffe5afb9e7a7b0e5af86e992a5e58aa0e5af86e695b0e68dae

sm2签名

sm2签名。

一、请求响应示例

请求示例

注意:此处省略了内容长度(当前请求的二进制数据长度)

请求数据:303331323334353637380000000177384d7547433943ffffffffe5be85e58aa0e5af86e695b0e68dae

响应成功示例

注意:此处省略了内容长度(当前请求的二进制数据长度)

响应数据:303331323334353637380000000177384d75474339433030ffff3045022009c9c6d0617747c3bbd54d7b35df031374c08d400c7c4691077f032e43c4f2ca022100e304600f66afbd021ca902d4ac0c88fa918d3759c0027ce10170c13db3ebfeb0

sm2验签

sm2验签。

一、请求响应示例

请求示例

注意:此处省略了内容长度(当前请求的二进制数据长度)

请求数据:303431323334353637380000000148683457514e4b78ffffffff8eee1ca679c3cc0c93938d2cc9446df852a67dd5414bddea6dbffe974ebd767d3046022100847fa7d2a951279e4fc1c4d82e05c0bd34e8fb601463178289235d01b1caac2f022100f566f6e75779975bb746f7412ad50f6e4b6b788b4fd82b59223280f8bf993bd3

响应成功示例

注意:此处省略了内容长度(当前请求的二进制数据长度)

响应数据:303431323334353637380000000148683457514e4b783030ffff00000001

sm2加密

sm2加密。

一、请求响应示例

请求示例

注意:此处省略了内容长度(当前请求的二进制数据长度)

请求数据:303531323334353637380000000148683457514e4b78ffffffffe5be85e58aa0e5af86e695b0e68dae

响应成功示例

注意:此处省略了内容长度(当前请求的二进制数据长度)

响应数据:303531323334353637380000000148683457514e4b783030ffff3078022062ced2ffe421c133ff2c693146a64598279a14d7d1d5d7889cda0fe8af78ea6a022100e5caa44c482a6ef0385df3b774fc0b174fc600c27c70978322f9fe77e158d97904205a900675c4b71da8923b23d51c0252dbf423308fc08c4889c93af6f570e9aeb1040fb7c028ea3270b046e9b416f90db3a6

申请指定索引的密钥对

申请指定索引的密钥对。

一、请求响应示例

请求示例

注意:此处省略了内容长度(当前请求的二进制数据长度)

请求数据:303831323334353637380000000148683457514e4b78ffffffff00000000

响应成功示例

注意:此处省略了内容长度(当前请求的二进制数据长度)

响应数据:303831323334353637380000000148683457514e4b783030ffff00000001

注销指定索引的密钥对

注销指定索引的密钥对。

一、请求响应示例

请求示例

注意:此处省略了内容长度(当前请求的二进制数据长度)

请求数据:303931323334353637380000000148683457514e4b78ffffffff00000005

响应成功示例

注意:此处省略了内容长度(当前请求的二进制数据长度)

响应数据:303931323334353637380000000148683457514e4b783030ffff00000001

sm2解密

sm2解密。

一、请求响应示例

请求示例

注意:此处省略了内容长度(当前请求的二进制数据长度)

请求数据:303631323334353637380000000177384d7547433943ffffffff000000000000000000000000000000000000000000000000000000000000000074cf8db633b22572c70cbc164e04a630709c70b2f6e3d80c9b6ddfd146cc40420000000000000000000000000000000000000000000000000000000000000000ab29782b9ac9c0a733e6b8d45d3f39d5b0568ed85849634a7a6bd5593acebe656af946f01da5f892600f29042889ff8c28a962ea603430dcb569ad18f374608b10000000fdf797490d6b2907bc74f00599c2f4150000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008916ab4937a4c9f5b3185a077cc52c7d

响应成功示例

注意:此处省略了内容长度(当前请求的二进制数据长度)

响应数据:303631323334353637380000000177384d75474339433030ffff06b4ae8bf1cd01da8512c72c922a61be

sm2公钥导出

sm2公钥导出

一、请求响应示例

请求示例

//操作标识
byte[] act = "07".getBytes();
String cus = "12345678";
//透传数据
byte[] custom = cus.getBytes();
//密钥索引
byte[] cipIndex = new byte[]{0, 0, 0, 1};
//异常码
byte[] error = new byte[]{-1, -1};
//预留
byte[] blank = new byte[]{-1, -1};
//appkey
byte[] appKey = appKeyDemo.getBytes();
// 请求正文 1、ENCRYPTION 加密公钥 2、SIGNATURE 签名公钥
// [69, 78, 67, 82, 89, 80, 84, 73, 79, 78] 加密公钥context报文
// [83, 73, 71, 78, 65, 84, 85, 82, 69] 签名公钥context报文
byte[] context = "SIGNATURE".getBytes();
请求数据:303731323334353637380000000177384d7547433943ffffffff454e4352595054494f4e

响应成功示例

注意:此处省略了内容长度(当前请求的二进制数据长度)

响应数据:303731323334353637380000000177384d75474339433030ffff40286cde42554a51c033802e3b0bc7bd0bd621e37b4190a91dccffdce29c8e4af15748d1e6ec2101854896c3b9d7b37259d8a49223e4c937141528cd5d07fc89