那位做过CPU卡的读写程序?

常遇道 2006-11-21 09:32:23
那位做过CPU卡的读写程序?

cmdbuff[0] = 0x0; //nad
cmdbuff[1] = 0x40; //pcb
cmdbuff[2] = 0x29; //length 3-31
cmdbuff[3] = 0x80; //CLA create MF
cmdbuff[4] = 0xE0; //INS
cmdbuff[5] = 00; //Create MF 安装密钥
cmdbuff[6] = 00; //正在建立
cmdbuff[7] = 0x18; //LC
cmdbuff[8] = 0xFF; //8字节传输密钥start
cmdbuff[9] = 0xFF;
cmdbuff[10] = 0xFF;
cmdbuff[11] = 0xFF;
cmdbuff[12] = 0xFF;
cmdbuff[13] = 0xFF;
cmdbuff[14] = 0xFF;
cmdbuff[15] = 0xFF; //8字节传输密钥end
cmdbuff[16] = 0xFF; //权限,在MF下建立文件
cmdbuff[17] = 0xF; //目录文件的短文件标识符
cmdbuff[18] = 0x31; //1PAY.SYS.DDF01,EF名称
cmdbuff[19] = 0x50;
cmdbuff[20] = 0x41;
cmdbuff[21] = 0x59;
cmdbuff[22] = 0x2E;
cmdbuff[23] = 0x53;
cmdbuff[24] = 0x59;
cmdbuff[25] = 0x53;
cmdbuff[26] = 0x2E;
cmdbuff[27] = 0x44;
cmdbuff[28] = 0x44;
cmdbuff[29] = 0x46;
cmdbuff[30] = 0x30;
cmdbuff[31] = 0x31;
cmdbuff[32] = 0x0; //bcc calculation

for(int i=0;i<32;i++)
{
cmdbuff[32] = (byte)(cmdbuff[i] ^ cmdbuff[32]);
}
return icc_instruction(cmdbuff,33,retbuff);

-----------------------------------------------------
int cpu_protocol(int icdev,int len, unsigned char *send_cmd,
unsigned char *receive_data
说明: 按照CPU卡T=1的传输协议向读写器发送命令串
参数: icdev: 初始化返回的设备标识符
send_cmd: 对卡操作的命令串(T=1格式)
len: 命令串的长度
receive_data: CPU卡返回的数据串
receive_data: CPU卡返回的数据串?
怎么得到CPU卡retbuff返回值的状态。



...全文
417 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
常遇道 2006-11-23
  • 打赏
  • 举报
回复
返回的值.
beatle_1983 2006-11-23
  • 打赏
  • 举报
回复
你是要retbuff里面的返回值的状态?还是retbuff的返回值?
色郎中 2006-11-22
  • 打赏
  • 举报
回复
ret_buf --------响应缓冲区,第一个字节存放响应数据的长度;

没搞过
但我想这个应该是个API函数一样
如果成功执行了 就返回数据 ret-buf 在这个里面
通过判断长度 就可以知道要收多少字节数据了啊
自己把这个数组里的东西 搞出来就ok了
常遇道 2006-11-22
  • 打赏
  • 举报
回复
上面的调用的函数有误工,应该是这个
int icc_instruction(unsigned char *ins_buff,unsigned char cmd_len,unsigned char *ret_buf);
功能描述:向CPU卡发送一条指令,同时获得该指令返回值
入口参数:ins_buff--------指令缓冲区;
cmd_len --------指令长度;
ret_buf --------响应缓冲区,第一个字节存放响应数据的长度;
返回值:
-1 ---------通迅失败或设置密码验证未通过;
其它 -------CPU卡回送的状态码;
--------------------------------------------------------------------------------
const int arrarySize = 100;
byte [] cmdbuff = new byte[arrarySize];
byte [] retbuff = new byte[arrarySize];

cmdbuff[0] = 0x0; //nad
cmdbuff[1] = 0x40; //pcb
cmdbuff[2] = 0x29; //length 3-31
cmdbuff[3] = 0x80; //CLA create MF
cmdbuff[4] = 0xE0; //INS
cmdbuff[5] = 00; //Create MF 安装密钥
cmdbuff[6] = 00; //正在建立
cmdbuff[7] = 0x18; //LC
cmdbuff[8] = 0xFF; //8字节传输密钥start
cmdbuff[9] = 0xFF;
cmdbuff[10] = 0xFF;
cmdbuff[11] = 0xFF;
cmdbuff[12] = 0xFF;
cmdbuff[13] = 0xFF;
cmdbuff[14] = 0xFF;
cmdbuff[15] = 0xFF; //8字节传输密钥end
cmdbuff[16] = 0xFF; //权限,在MF下建立文件
cmdbuff[17] = 0xF; //目录文件的短文件标识符
cmdbuff[18] = 0x31; //1PAY.SYS.DDF01,EF名称
cmdbuff[19] = 0x50;
cmdbuff[20] = 0x41;
cmdbuff[21] = 0x59;
cmdbuff[22] = 0x2E;
cmdbuff[23] = 0x53;
cmdbuff[24] = 0x59;
cmdbuff[25] = 0x53;
cmdbuff[26] = 0x2E;
cmdbuff[27] = 0x44;
cmdbuff[28] = 0x44;
cmdbuff[29] = 0x46;
cmdbuff[30] = 0x30;
cmdbuff[31] = 0x31;
cmdbuff[32] = 0x0;

for(int i=0;i<32;i++)
{
cmdbuff[32] = (byte)(cmdbuff[i] ^ cmdbuff[32]);
}
return icc_instruction(cmdbuff,33,retbuff);

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧