我们知道 Applet.process() 方法在 APDU 请求和它的 APDU 响应之间调用,即它可以读取一些传入的 APDU 并发送一些传出作为响应。
但是,Applet 可以发送自己的 APDU 命令并得到响应吗?IE:
public void process(APDU apdu)
{
...
APDU resp = SomeAPI.someMethod("00A40101FF...");
...
}
但是,Applet 可以发送自己的 APDU 命令并得到响应吗?
简单的答案是NO,您不能为另一个小程序发送 APDU,因为您无权访问命令调度程序。但是有一种方法可以做到这一点,请阅读下文。
public void process(APDU apdu) { ... APDU resp = SomeAPI.someMethod("00A40101FF..."); ... }
在 java 卡小程序(直到最新版本 3.0.5u)中,这样的事情是不可能的,因为在这里您存储了 APDU 对象的引用,无法存储临时 JCRE 入口点对象及其引用。
现在,来实现你想要的功能。使用可共享的接口对象。显然,您需要在此处修改目标小程序(您要调用的)。通过可共享对象调用小程序将为您进行上下文切换,之后您可以返回到您的小程序。
参考http://www.oracle.com/technetwork/java/javacard/specs-jsp-136430.html
不,它不能。
您无权访问命令调度程序。
我假设您不打算通过串行接口与目标 Applet 通信,而是寻找“执行与接收此 APDU 时相同的功能”。
我有一些疑问,是否存在这样的接口并且由于以下原因看不到用例: