sydapi/DProto/79.xml
2021-06-29 11:32:24 +08:00

137 lines
3.6 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="UTF-8" ?>
<packet extend="base">
<req>
<command>
<hex>79</hex>
</command>
<data extend="data">
<AlgorithmKey len="1" cn="算法标识">
<options>
<option cn="RSA">
<hex>0</hex>
</option>
<option cn="SM2">
<hex>1</hex>
</option>
</options>
</AlgorithmKey>
<fillKey len="1" cn="填充标识" :if="0 == $packet.data.AlgorithmKey$option">
<options>
<option cn="数据长度必须等于密钥长度">
<hex>0</hex>
</option>
<option cn="PKCS#1 v1.5 填充方式">
<hex>1</hex>
</option>
</options>
</fillKey>
<privateKeyTag len="27" cn="指示私钥位置的标记">
数字为存储私钥的索引,除了
全 9 表示使用由命令中提供的密钥。
27 位的索引号16 位机构号+3 位密钥类型+8 位密钥
索引号。
</privateKeyTag>
<privateKeyLength :if="useLocalKey()" len="4" :value="privateKeyLen()" cn="私钥的长度">
私钥的长度DER
</privateKeyLength>
<privateKey :if="useLocalKey()" cn="私钥值">
私钥值
</privateKey>
<dataLength len="4" :value="dataLen()" cn="数据长度">
数据长度
</dataLength>
<infoData cn="数据">
数据
</infoData>
</data>
</req>
<res>
<command>
<hex>7A</hex>
</command>
<data>
<error len="2" cn="错误码" format="X" :catch="catchError('%s')">
<options>
<option cn="无错误">
<hex>00</hex>
</option>
<option cn="私钥格式不对">
<hex>04</hex>
</option>
<option cn="无效的算法标识">
<hex>06</hex>
</option>
<option cn="无效的附加标识">
<hex>07</hex>
</option>
<option cn="密钥奇偶校验错误">
<hex>10</hex>
</option>
<option cn="输入数据错">
<hex>15</hex>
</option>
<option cn="DSP 错误">
DSP 错误;报告给管理员。
<hex>47</hex>
</option>
<option cn="密钥块长度错误">
<hex>76</hex>
</option>
<option cn="输入数据长度错误">
<hex>80</hex>
</option>
</options>
</error>
<dataLen len="4" cn="密文长度">
密文长度
</dataLen>
<cipherData :len="cipherLen()" cn="密文的 DER 编码">
密文的 DER 编码(对于 RSA 算法,数据类型为 BIT).
</cipherData>
</data>
</res>
<script>
function useLocalKey(){
if( "999999999999999999999999999".equals(new String($packet.data.privateKeyTag) ))
{
return true;
}else{
return false;
}
}
function dataLen(){
var data = $packet.data;
return data.infoData.length;
}
function privateKeyLen(){
var data = $packet.data;
return data.privateKey.length;
}
function cipherLen(){
return Util.a2i( $final.getSection('data').getSection('dataLen') )
}
</script>
</packet>