javacard应用程序可以检测安全访问模块终端上的卡更改吗?

时间:2017-05-31 07:03:59

标签: java smartcard javacard smartcard-reader pcsc

我使用javax.smartcardio API使用ACS ACR38USBSAM阅读器开发Javacard应用程序。我在检测是否存在SAM卡时遇到问题。

列出可用的终端产生两个CardTerminal,ACS ACR38USB 0和ACS ACR38USBSAM 0.这里我试图使用ACS ACR38USBSAM 0终端来检测SAM存在的变化。

CardTerminal terminal = factory.terminals().getTerminal("ACS ACR38USBSAM 0");
terminal.waitForCardPresent(0);

用于检测waitForCardPresent(0)waitForCardAbsent(0)等更改的方法在用于普通卡终端时表现正常,但未正确检测到SAM卡。

  • 调用waitForCardPresent(0)时,即使SAM不存在,该方法也会始终返回true
  • 调用waitForCardAbsent(0)时,即使SAM已断开连接,该方法也将始终等待。

我还阅读了device's page中的技术规范和参考手册,但我仍然不知道它是否应该是这样的。我认为这是设计的,但我仍然不了解其背后的原因。

我理解在实际使用中很少删除或更改SAM。这本身并不是一个非常关键的要求,但主要是为了方便起见。

0 个答案:

没有答案