首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用pyscard发送APDU命令时出现问题

使用pyscard发送APDU命令时出现问题
EN

Stack Overflow用户
提问于 2022-03-07 12:36:52
回答 1查看 286关注 0票数 0

我正在开发一个涉及ACR1251智能卡阅读器的简单应用程序。目前我没有它在我身边,但这是一个时间敏感的项目,所以我使用V智能卡来模拟一个阅读器和一个ISO 7816卡。

我遇到问题的代码是:

代码语言:javascript
复制
from smartcard.System import readers

reader = readers()[0]
conn = reader.createConnection()
conn.connect()
response, sw1, sw2 = conn.transmit([0xFF, 0xCA, 0x00, 0x00, 0x00]) # Get Data UID

响应代码为0x690x88,这意味着“不正确的安全消息传递(SM)数据对象”。我在pyscard的文档中没有发现任何提到SM的东西,而且googling也没有成功。

我的代码遗漏了什么吗?这是绝对有可能的,因为我正试图以最简单的方式来做这件事,而pyscard的级别很低,而且文档实际上并不是为了做简单的事情。

而且,这可能是仿真器的一个问题,在这种情况下,我想我只需要等待海关处理读者。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-08 15:46:48

对于与ISO 7816标准系列兼容的卡(第4、8和9部分是必不可少的),您指定的0xFF类字节实际上表示安全消息传递,这与剩余字节(MAC太短)相矛盾。

您给出的APDU看起来更像伪APDU,用于将非处理器卡定位为MIFARE或向读取器发送命令(与卡片相反);这种可能性有相当大的重叠。

作为第一步,您可以尝试其他类字节值,0x00 (纯ISO)和0xA0 (GSM-传统)是最有希望的。第4部分7816解释了类字节的结构。

支持的命令应该在卡片用户手册中,即使您设法使get数据获得成功,您稍后也会迫切需要它来实现更复杂的功能。(如果你认为ISO 7816卡是通用的,或者是彼此之间完全兼容的:错误的,在现实世界中没有“泛型7816”卡。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71381188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档