如何将pcsc命令发送到SAM而不是发送到读卡器

2024-06-02 16:00:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我有带SAM插槽的acr1281读卡器(安全访问模块)。 我可以使用python库smartcard通过pc/sc与卡通信。 但我想把命令发送给SAM插入到阅读器。在

如何“切换命令频道”,这是可能的吗? 智能卡库可以向读卡器发送控制命令(PC-to-U-RDR\u-Escape),但在acr1281文档中只指定了GetFirmvareVersion命令。在

我甚至可以看到SAM是否插入-我调用SCardStatus()并使用SAM inserted获得0x34代码(据我所知,这是SCARD_POWERED=0x10 | SCARD_NEGOTIABLE=0x20 | SCARD_PRESENT=0x04),没有SAM它是0x0c=SCARD_SWALLOWED=0x08 | SCARD_PRESENT=0x04。在

但是我发送的所有命令都是放在阅读器上的MIFARE PICC。我想把命令发送给塞姆插入阅读器。在


Tags: 模块命令sam频道阅读器发送给插槽sc
1条回答
网友
1楼 · 发布于 2024-06-02 16:00:24

在安装了pscs驱动程序的Ubuntu Linux中,smartcard库中有3个读卡器:

from smartcard.System import readers
print(readers())
  • ACS ACR1281 1S双读卡器00 00
  • ACS ACR1281 1S双读卡器00 01
  • ACS ACR1281 1S双读卡器00 02

读卡器00 00对我来说是不活动的,我想它是用于联系人卡片的, 读卡器00 01适用于PICC(在我的例子中是MIFARE), 读卡器00 02用于ACR中的SAM slot

因此,我使用reader 01发送卡APDU,使用reader 02向SAM发送命令,并成功地解决了我的任务。在

不知道如何自动找到它们,但我认为00 00等等是名称中的常量,我可以根据名称中的最后一个符号来选择PICC和SAM的读卡器。在

我通过smartcard.CardRequest.CardRequest()-等待附近的卡连接到PICC读卡器。 所以我只能找到SAM reader并连接到它:

^{pr2}$

相关问题 更多 >