【发布时间】:2015-01-26 09:35:38
【问题描述】:
我注意到我的智能卡(带有 Omnikey 5121 读卡器的 NXP J2E145、J3A081、J3C145)上有一些非常奇怪的行为:调用 JavaCard 方法后立即断电
JCSystem.requestObjectDeletion()
可能会损坏卡:大约 10% 的此类断电后,ATR 命令非常慢(1000 毫秒),并且我对任何其他 APDU(小程序选择、卡管理器身份验证等)都没有响应。
我知道 requestObjectDeletion() 的行为取决于供应商特定的实现,所以我的问题非常广泛和开放......
垃圾收集是否“通常”在单个事务中处理?
是否有任何“官方”建议不要在可能断电的情况下调用 requestObjectDeletion()?
您对 NXP 的卡片有类似的体验吗?
编辑:
- JCSystem.isObjectDeletionSupported() == true 在我所有的智能卡上。
-
当尝试连接损坏卡的卡管理器小程序时,Eclipse IDE 中的 JCOP shell 会报告:
ATR:3BFB9600008131FE454F4450204D41502053414D3E
ATR: T = 1
jcshell:终端的未知问题。 最后一个终端错误:由于 I/O 设备错误,无法执行请求。
【问题讨论】:
-
你检查布尔 JCSystem.isObjectDeletionSupported() 了吗?
-
我实际上并没有,但是垃圾收集器通常工作正常并且它不会抛出任何异常。在调用 requestObjectDeletion(读卡器上的灯闪烁)大约 5 秒钟后,卡正在做某事,并且 EEPROM 被清理(我检查过)。唯一的问题是当我在这个过程的中间从读卡器中拉出卡片时。有时,这张卡似乎坏了。
-
亲爱的 vojta,我可以知道你的电子邮件地址吗?我也在研究 NXP 智能卡。我相信你可以帮助我很多,但我不能在这里提出问题,因为有些问题是离题的。
-
能否请您与我们分享您在卡上上传的程序和您在计算机中运行的程序?
-
对不起,我的小程序很复杂,是商业安全项目的关键部分,所以我真的不能和你分享任何代码。如果您有任何问题,请使用 Stack Overflow。
标签: transactions garbage-collection smartcard javacard