106 lines
2.6 KiB
XML
106 lines
2.6 KiB
XML
<?xml version="1.0" encoding="UTF-8" ?>
|
||
<packet extend="base">
|
||
<req>
|
||
|
||
<command>
|
||
<bin>8026</bin>
|
||
</command>
|
||
<data extend="data">
|
||
|
||
<certificateNoLen len="1" format="X" :value="certificateNoLength()" cn="证书序列号长度">
|
||
证书序列号的长度
|
||
</certificateNoLen>
|
||
|
||
<certificateNo cn="证书序列号">
|
||
X509证书序号
|
||
</certificateNo>
|
||
|
||
<dataSign len="1" required="false" cn="签名数据类型标识">
|
||
‘p’:为p时传入数据为SM3-HASH值
|
||
</dataSign>
|
||
|
||
<hash len="32" :if=" 'P' == $packet.data.dataSign " cn="SM3-HASH">
|
||
待签名数据的HASH标志位存在时存在
|
||
</hash>
|
||
|
||
<dataLength len="2" format="X" :if=" 'P' != $packet.data.dataSign " :value="dataLen()" cn="用于签名的信息数据的字节长度">
|
||
待签名数据长度。签名数据类型志位存在时不存在
|
||
</dataLength>
|
||
|
||
<infoData :if=" 'P' != $packet.data.dataSign " cn="要签名的信息">
|
||
待签名数据内容。签名数据类型志位存在时不存在
|
||
</infoData>
|
||
|
||
<tailSep len="1" :if=" null != $packet.data.tail " cn="尾分隔">
|
||
可选项。如果显示消息尾域,则该域必须显示。值为
|
||
“X’19”。
|
||
<hex>19</hex>
|
||
</tailSep>
|
||
|
||
<tail maxLen="32" required="false" cn="尾部">
|
||
可选项。最大长度为 32个字符。
|
||
</tail>
|
||
</data>
|
||
|
||
|
||
|
||
</req>
|
||
<res>
|
||
|
||
<command>
|
||
<bin>8027</bin>
|
||
</command>
|
||
<data>
|
||
<error len="2" cn="错误码" format="X" :catch="catchError('%s')">
|
||
<options>
|
||
<option cn="无错误">
|
||
<hex>00</hex>
|
||
</option>
|
||
</options>
|
||
</error>
|
||
|
||
<signatureLen len="2" cn="返回结果长度">
|
||
|
||
</signatureLen>
|
||
|
||
<signature :len="resSignatureLen()" cn="返回结果数据">
|
||
符合PKCS7标准的签名结果
|
||
</signature>
|
||
|
||
</data>
|
||
|
||
|
||
|
||
</res>
|
||
<script> <![CDATA[
|
||
|
||
|
||
function signatureLen(){
|
||
var data = $packet.data;
|
||
return data.signature.length;
|
||
}
|
||
|
||
function dataLen(){
|
||
def len = $packet.data.infoData.length;
|
||
def data = new byte[2];
|
||
data[0] = (byte)(len >> 8 & 0xFF)
|
||
data[1] = (byte)(len & 0xFF)
|
||
return data;
|
||
|
||
}
|
||
|
||
function certificateNoLength(){
|
||
def len = $packet.data.certificateNo.length();
|
||
def data = new byte[1];
|
||
data[0] = (byte)(len & 0xFF)
|
||
return data;
|
||
}
|
||
|
||
function resSignatureLen() {
|
||
return Util.b2i( $final.getSection('data').getSection('signatureLen') )
|
||
}
|
||
|
||
|
||
]]> </script>
|
||
</packet>
|