繁体   English   中英

Javacard通过Java代码获取已安装小程序的小程序AID

[英]Javacard get applet AID of installed applets through Java code

我有一个javacard,它安装了2个applet。 现在,我想在两者中选择一个。 目前,我的工作是,提供小程序的cap文件,从中获取其AID。 但是我觉得这种方法不令人满意。 所以

  1. 有没有方法或步骤来获取没有安装cap文件的Java卡中安装的applet的AID?
  2. 有没有选择没有其AID的小程序的方法吗? 我的意思是说,有没有一种方法可以使小程序在重置后自动选择?
  3. 还有其他想法或见解吗?

对于您提出的问题,

  1. 是。 PyApduTool可以使您达到目标。 即使您没有cap文件,此工具也可以帮助您获取java卡中所有包或applet的AID。 只需按下“刷新”按钮。 您需要的东西将显示在右侧的文本字段中。

在此处输入图片说明

  1. 您可以在安装小程序时将其设置为“默认选定”。 这样,您可以使小程序在默认情况下处于选中状态,而不必知道其AID。

在此处输入图片说明

  1. 为了方便起见,最好了解applet-AID。 默认只能选择一个小程序。

安迪的回答很好,但我认为它缺少问题的重要组成部分:

Javacard 通过Java代码获取已安装小程序的小程序AID

如果问题是从一个Java卡小程序本身的代码中查找已安装的小程序,则此答案可能适用:
首先,可以通过JCSystem.getAID()获得applet本身的AID。
其次,不可能从已安装的小程序中“检测”其他小程序。
尽管如果您知道另一个Applet的AID,您可以使用JCSystemGPSystem来获取有关该Applet的有用信息。

因此,除了内部JavaCard代码之外,卡管理器还能够列出已安装的applet及其所有特权,依此类推。 您可以使用自己选择的工具。 如果您正在使用JCOP,我建议使用JCOP Shell。 如果您使用免费软件,则建议使用Martin Paljak的Global Platform Pro

除了选择AID和默认选择之外,没有直接的方法来选择applet。 使用JavaCard的SharedObjectInterface机制有一种间接方法,该机制使您可以将控制流更改为其他applet。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM