如何修改JavaCard j2a040的ATR



我正在尝试更改Java智能卡(JCOP) J2A040的ATR。我查阅了手册,找不到一个明确的答案。有像PyResMan这样的程序可以成功地改变它,但是,我无法通过python找到改变它的方法。

我正在研究智能卡集成,需要了解如何去改变ATR。我知道这和APDU有关,但是我不知道是怎么回事。

如果有人有任何答案,请告诉我。

可以从Applet本身更改,也可以从芯片的供应商初始化过程更改。全局平台规范允许您通过对GP卡上中的GPSystem的静态调用来设置它。API:

public static boolean setATRHistBytes (byte[] buffer, short bOffset, byte bLength)

此方法设置ATR(应答重置)中包含的历史字节。字节序列将被设置在随后的通电或复位时。只有"默认选择"的应用程序可以调用此方法。这张卡管理器在GlobalPlatform注册表中定位所选应用程序的AID,并确定是否应用程序具有所需的权限。

正如您所看到的,这只会改变作为ATR一部分的历史字节。其他设置是特定于芯片的,因此通常只能在(Java Card)操作系统实现的初始化期间设置。

对于JCOP,这可以通过将特定的字节值写入持久内存来实现(如果仍然相同,则将冷复位和热复位分开放置)。请与您的代表联系以获取所需的文件和认证材料。

最新更新