127 lines
3.6 KiB
XML
127 lines
3.6 KiB
XML
<?xml version="1.0" encoding="UTF-8" ?>
|
||
<packet extend="base">
|
||
<req>
|
||
|
||
<command>
|
||
<hex>83</hex>
|
||
</command>
|
||
<data extend="data">
|
||
|
||
<cardType len="1" cn="卡类型">
|
||
<options>
|
||
<option cn="Visa">
|
||
<hex>0</hex>
|
||
</option>
|
||
<option cn="Master">
|
||
<hex>1</hex>
|
||
</option>
|
||
<option cn="PBOC">
|
||
<hex>2</hex>
|
||
</option>
|
||
</options>
|
||
</cardType>
|
||
|
||
<AlgorithmType len="1" cn="算法类型" >
|
||
<options>
|
||
<option cn="3DES">
|
||
<hex>0</hex>
|
||
</option>
|
||
<option cn="SM4">
|
||
仅PBOC类型卡片支持SM4
|
||
<hex>1</hex>
|
||
</option>
|
||
</options>
|
||
</AlgorithmType>
|
||
|
||
<pattern len="1" cn="模式">
|
||
<options>
|
||
<option cn="只验证ARQC">
|
||
<hex>0</hex>
|
||
</option>
|
||
<option cn="验证ARQC,验证成功后生成 ARPC">
|
||
<hex>1</hex>
|
||
</option>
|
||
<option cn="只产生ARPC">
|
||
<hex>2</hex>
|
||
</option>
|
||
</options>
|
||
</pattern>
|
||
|
||
<keyType len="3" cn="应用主密钥密钥类型">
|
||
应用主密钥密钥类型
|
||
</keyType>
|
||
|
||
<key len="27" cn="应用主密钥">
|
||
27位的索引号:16位机构号+3位密钥类型+8位密钥索引号,‘K’为传入索引标志;
|
||
</key>
|
||
|
||
<cardDispersionFactor len="16" cn="卡片分散因子">
|
||
用于分散主密钥生成卡片密钥
|
||
</cardDispersionFactor>
|
||
|
||
<ATC len="4" cn="ATC(会话密钥分散因子)">
|
||
用于进一步分散卡片密钥生成会话密钥,VISA卡,卡片密钥与会话密钥相同。
|
||
</ATC>
|
||
|
||
<ARQC len="16" cn="ARQC">
|
||
待验证ARQC,同时参与ARPC生成
|
||
</ARQC>
|
||
|
||
<messageLength len="4" :if="0 == $packet.data.patten$option || 1 == $packet.data.patten$option" :value="messageLen()" cn="数据长度">
|
||
模式为0/1时存在,用于计算ARQC并校验的数据长度
|
||
</messageLength>
|
||
|
||
<message cn="数据">
|
||
用于计算ARQC并校验的数据
|
||
</message>
|
||
|
||
<ARC len="4" :if="1 == $packet.data.patten$option || 2 == $packet.data.patten$option" cn="ARC">
|
||
模式为1/2时存在,作用于ARQC,然后用于计算ARPC
|
||
</ARC>
|
||
</data>
|
||
|
||
</req>
|
||
<res>
|
||
|
||
<command>
|
||
<hex>84</hex>
|
||
</command>
|
||
<data>
|
||
<error len="2" cn="错误码" format="X" :catch="catchError('%s')">
|
||
<options>
|
||
<option cn="无错误">
|
||
<hex>00</hex>
|
||
</option>
|
||
<option cn="ARQC校验失败">
|
||
<hex>07</hex>
|
||
</option>
|
||
<option cn="LMK运算错误">
|
||
<hex>13</hex>
|
||
</option>
|
||
<option cn="输入数据错">
|
||
<hex>15</hex>
|
||
</option>
|
||
<option cn="数据长度错">
|
||
<hex>80</hex>
|
||
</option>
|
||
</options>
|
||
</error>
|
||
|
||
<APRC len="16" :if="1 == $packet.data.patten$option || 2 == $packet.data.patten$option" cn="APRC">
|
||
模式为1/2,输出AQPC
|
||
</APRC>
|
||
|
||
</data>
|
||
|
||
|
||
|
||
</res>
|
||
<script>
|
||
function messageLen(){
|
||
var data = $packet.data;
|
||
return data.message.length();
|
||
}
|
||
|
||
|
||
</script>
|
||
</packet> |