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