我正尝试在Objective-C中使用PCSC命令读取智能卡。APDU命令错误 - 响应6C6B
int count = 17;
unsigned char *get_cplc_command = (unsigned char *)calloc(count, sizeof(unsigned char));
get_cplc_command[1]=-92;
get_cplc_command[2]=4;
get_cplc_command[4]=12;
get_cplc_command[5]=-96;
get_cplc_command[8]=2;
get_cplc_command[9]=67;
get_cplc_command[11]=19;
get_cplc_command[15]=1;
get_cplc_command[16]=1;
receive_length = sizeof(receive_buffer);
ret = SCardTransmit(card,
&sendPCI,
get_cplc_command,
sizeof(get_cplc_command),
NULL,
receive_buffer,
&receive_length);
LOG(@"SCardTransmit 0x%08x", ret);
当我执行上述命令时,我得到了6C6B响应。你能帮我解决这个问题吗?
@vip,感谢您的回复。现在我发送了无符号字符get_cplc_command [] = {0x00,0xA4,0x04,0x00,0x0c,0xA0,0x00,0x00,0x02,0x43,0x00,0x13,0x00,0x00,0x00,0x01,0x01}作为命令。现在响应是6121.我试图改变第四个参数的sizeof,它给了我兼容性错误。如果回复代码6121,请告诉我如何纠正此问题。 –
@SaiKiran:这应该是一个单独的问题。尽管如此,简短的回答是:命令正常工作,你有一个T = 0卡,需要发送GET RESPONSE来检索答案。我建议您熟悉ISO 7816-3和ISO 7816-4。 – guidot
@SaiKiran我更新了答案。兼容性错误很奇怪,应该可以将'int'强制转换为'DWORD'而不会出现任何问题....可能是Objective-C专业。祝你好运! – vlp