资源描述:
《pc-pos与读卡器接口协议1》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、PC-POS与读卡器接口协议(试行稿)1・数据帧格式通过通讯接口和设备的命令交互都采用标准的帧结构,数据帧的结构泄义如下:帧头命令状态长度域数据域校验域帧尾1字节0x021字节1字节2字节1字节CRC1字节0x03起始标志:STX(0x02),数据发送或接收的起始标志。命令域:1字节,十六进制表示。表示数据域的长度,高字节位在前,低字节位在后。状态域:标志当前交互的状态。长度域:当前数据域的长度。数据域:长度由长度域定义。校验域:1字节,包括从命令字到数据域的数据按字节异结果取值。结束标志:ETX(0x03),数据
2、发送或接收的结束标志。数据发送过程:通过串口发送整帧数据,以0x02标志数据开始发送,0x03标志数据发送结朿,中间5个域的数据均先拆分成半字节转换成ASCII码发送,高半字节位在前,低半字节位在后。例如:命令0x45->0x340x35(—个字节拆分成2字节)2.命令定义命令码功能简介0x40下载主密钥0x41下载工作密钥0x42MAC计算0x43卡复位0x44获取密码0x45卡命令交互0x46卡下电0x47设置时间错误代码错误类型0x010x020x030x043.相关函数接口3.1.下载主密钥unsigned
3、charSys_DownMainKey(unsignedcharMKeylD^unsignedcharMKey[16])输入参数:MKeylD:主密钥IDMKey:16字节主密钥明文输出参数:无返回值:0表示成功,非零表示失败说明:若密钥已经存在,更新原有密钥通讯发送数据CMDSTATELENDATA0X40017MKeylD(1字节)MKey(16字节)通讯应答CMDSTATELENDATA0X400/11ERR_CODE3.2.下载工作密钥unsignedcharSys_DownWorkKey(unsigned
4、charMKeylD,unsignedcharWKeylD,unsignedcharWKeyfl6])输入参数:MKeylD:主密钥IDWKey:工作密钥IDMKey:用主密钥加密过的工作密钥输出参数:无返回值:0表示成功,非零表示失败说明:若密钥己经存在,更新原有密钥通讯发送数据CMDSTATELENDATA0X41018MKeylD(1字节)WKeylD(1字节)MKey(16字节)通讯应答CMDSTATELENDATA0X410/11ERR_CODE正确:State=0,错误:State=非零3.3.MAC计
5、算unsignedcharSys_GetMAC(unsignedchar*outbuf,constunsignedchar*inbufunsignedintlen,unsignedshortkeylD,unsignedcharmode)输入参数:inbuf:输入数据len:输入数据长度KeyID:加密密钥IDMode:加密算法0:x99,1:x9.19输出参数:Outbuf:MAC值返回值:0表示成功,非零表示失败通讯发送数据CMDSTATELENDATA0X42018KeylD(1字节)Mode(1字节)len
6、(2字节)MKey(16字节)通讯应答CMDSTATELENDATA0X420/18MAC(8字节)正确:返回MAC,错误:MAC无效MAC,毛老师说用标准X9.19算法3.4.设置时间unsignedcharSys_Set_tinie(unsignedchar*Date_time)输入参数:Date_time:设置终端的时间返冋值:0表示成功,非零表示失败通讯发送数据CMDSTATELENDATA0X4607Data_time(7字节)通讯应答CMDSTATELENDATA0X460/11ERR_CODE3.5.
7、获取密码unsignedcharSys_GetPIN(unsignedchar*PINBlock,unsignedchar*Date_time,constunsignedchar*pan,unsignedcharformat,unsignedshortkeylD,unsignedintmin,unsignedintmax)输入参数:Date_time:计算PINBlock时终端的时间pan:帐号format:PINBLOCK格式,0:0/ANSIx98密文输出,2:明文输出keylD:加密密钥IDmin:输入密钥最
8、小长度max:输入密钥最大长度输出参数:Outbuf:PINBlock返回值:0表示成功,非零表示失败通讯发送数据CMDSTATELENDATA0X440keyed(1字节)Format1字节Min1字节Max1字节Pan16字节Time7字节通讯应答CMDSTATELENDATA0X440/11PINBlock(8字节)PIN算法见附件《中石化PIN加密算