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

188 lines
6.0 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>74</hex>
</command>
<data extend="data">
<signatureDataType len="1" cn="签名数据类型">
<options>
<option cn="HASH">
<hex>0</hex>
</option>
<option cn="原数据">
<hex>1</hex>
</option>
</options>
</signatureDataType>
<hashData :len="32" :if="0 == $packet.data.signatureDataType$option" cn="HASH 值">
可选项,只对“签名数据类型”为 0 时有效。
</hashData>
<userIdLength len="2" :if="1 == $packet.data.signatureDataType$option" :value="userIdLen()" cn="用户 ID 长度">
最大为 64必须是 4 的整数倍),只对“签名数据类型”为 1 时有效
</userIdLength>
<userId :if="1 == $packet.data.signatureDataType$option" cn="用户 ID">
可选项,只对“签名数据类型”为 1 时有效。
</userId>
<publicKeyLength len="4" :if="1 == $packet.data.signatureDataType$option" :value="publicKeyLen()" cn="公钥长度">
可选项,只对“签名数据类型”为 1 时有效。
</publicKeyLength>
<publicKey :if="1 == $packet.data.signatureDataType$option" cn="公钥的 DER 编码">
可选项,只对“签名数据类型”为 1 时有效。
</publicKey>
<dataLength len="4" :if="1 == $packet.data.signatureDataType$option" :value="dataLen()" cn="用于签名的信息数据的字节长度">
可选项,只对“签名数据类型”为 1 时有效。
</dataLength>
<infoData :if="1 == $packet.data.signatureDataType$option" cn="要签名的信息">
可选项,只对“签名数据类型”为 1 时有效。
</infoData>
<privateKeyTag len="27" cn="指示私钥位置的标记">
数字为存储私钥的索引,除了
全 9 表示使用由命令中提供的密钥。
27 位的索引号16 位机构号+3 位密钥类型+8 位密钥
索引号。
</privateKeyTag>
<privateKeyLength len="4" cn="加密密钥方案" :if="useLocalKey()" :value="privateKeyLen()">
可选项,当私钥标记为全 9 时显示此域
</privateKeyLength>
<privateKey cn="LMK34-35 下加密的私钥" :if="useLocalKey()">
可选项,当私钥标记为全 9 时显示此域
</privateKey>
<tailSep len="1" :if=" null != $packet.data.tail " cn="尾分隔">
可选项。如果显示消息尾域,则该域必须显示。值为
“X19”。
<hex>19</hex>
</tailSep>
<tail maxLen="32" required="false" cn="尾部">
可选项。最大长度为 32个字符。
</tail>
</data>
</req>
<res>
<command>
<hex>75</hex>
</command>
<data>
<error len="2" cn="错误码" format="X" :catch="catchError('%s')">
<options>
<option cn="无错误">
<hex>00</hex>
</option>
<option cn="无效的私钥类型">
<hex>03</hex>
</option>
<option cn="无效私钥标记">
<hex>04</hex>
</option>
<option cn="无效的哈希标识">
<hex>05</hex>
</option>
<option cn="无效的签名标识">
<hex>06</hex>
</option>
<option cn="无效的附加标识">
<hex>07</hex>
</option>
<option cn="LMK 错误">
LMK 错误;报告给管理员。
<hex>13</hex>
</option>
<option cn="输入数据错">
<hex>15</hex>
</option>
<option cn="DSP 错误">
DSP 错误;报告给管理员。
<hex>47</hex>
</option>
<option cn="私钥错误">
私钥错误;报告给管理员。
<hex>49</hex>
</option>
<option cn="无效摘要信息语法(仅仅无哈希模式)">
<hex>74</hex>
</option>
<option cn="公钥长度错误">
<hex>76</hex>
</option>
<option cn="私钥长度错误">
<hex>78</hex>
</option>
<option cn="输入数据长度错误">
<hex>80</hex>
</option>
</options>
</error>
<signatureLen len="4" cn="签名的字节长度">
签名的字节长度
</signatureLen>
<signature :len="signatureLen()" cn="签名的 DER 编码">
签名的 DER 编码
</signature>
<tailSep len="1" required="false" cn="尾分隔">
可选项。如果显示消息尾域,则该域必须显示。值为 “X19”。
<hex>19</hex>
</tailSep>
<tail maxLen="32" required="false" cn="尾部">
可选项。最大长度为 32个字符。
</tail>
</data>
</res>
<script>function useLocalKey(){
if( "999999999999999999999999999".equals($packet.data.privateKeyTag))
{
return true;
}else{
return false;
}
}
function userIdLen(){
return $packet.data.userId.length;
}
function publicKeyLen(){
var data = $packet.data;
return data.publicKey.length;
}
function dataLen(){
return $packet.data.infoData.length;
}
function privateKeyLen(){
var data = $packet.data;
return data.privateKey.length;
}
function signatureLen() {
return Util.a2i( $final.getSection('data').getSection('signatureLen') )
} </script>
</packet>