首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SmartCard ATR更改未反映在代码中

SmartCard ATR更改未反映在代码中
EN

Stack Overflow用户
提问于 2014-07-15 17:21:32
回答 1查看 249关注 0票数 0

我正在使用Java与C++ (Windows API)和SmartCard。

我在删除操作系统后获取ATR时遇到问题。我的应用程序是为了从SmartCard中删除操作系统。当操作系统被删除时,卡的ATR会改变,但它没有反映在我的代码中。删除操作系统后,我仍然得到相同的ATR,但当我重新启动我的应用程序时,它显示正确的ATR。

我的代码片段。

代码语言:javascript
复制
CardConnect();
getATR(); //get correct ATR
eraseOS(deleteOScmd,size); //Erasing OS

CardConnect(); //again connecting
getATR();      // againg try to get ATR but shows same as first call. 

这也同样发生在Java代码中。我想显示新的ATR,但无法更新ATR。

有人能帮我吗?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2014-07-15 20:01:31

通过删除操作系统,您将远离智能卡的任何标准使用,以至于任何解释都是可能的。读取器、智能卡读取器驱动器、资源管理器或任何其他人可以依赖这样一个事实,即在没有插入新智能卡的情况下,旧ATR仍然有效,并且仅提供先前数据的高速缓存副本。(请注意,除了来自ATR的历史字节之外,所有其他字节都与卡和读取器之间的通信相关,因此没有理由进行更改)。在现实生活中,允许操作系统擦除之类的事情发生是相当危险的。

我怀疑,您为ATR赋予了一种含义,这种含义最好放在用户数据对象中。

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

https://stackoverflow.com/questions/24754401

复制
相关文章

相似问题

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