我们知道Applet.process()方法在APDU请求和它的APDU响应之间调用,即它可以读取一些incomiung APDU并发送一些输出作为响应。
但是,Applet能发送自己的APDU命令并得到响应吗?即:
public void process(APDU apdu)
{
...
APDU resp = SomeAPI.someMethod("00A40101FF...");
...
}发布于 2018-04-18 12:13:45
但是,Applet能发送自己的APDU命令并得到响应吗?
简单的回答是NO,您不能为另一个applet发送APDU,因为您没有访问命令dispatcher的权限。但有一种方法可以做到这一点,请阅读下面的文章。
公开无效程序(Apdu apdu) {.APDU resp =SomeAPI.someMethod(“00A401FF.”);.}
在java卡applet中,这样的操作是不可能的(直到最新版本3.0.5u),因为这里存储的是APDU对象的引用,而临时JCRE入口点对象及其引用不能存储。
现在,要实现您想要的功能。使用可共享接口对象。显然,您需要在这里修改目标applet (您想要调用它)。通过共享对象调用applet将为您完成上下文切换,然后您可以返回到applet。
参考http://www.oracle.com/technetwork/java/javacard/specs-jsp-136430.html
发布于 2018-04-30 02:19:26
不,它不能,
您无法访问命令调度程序。
发布于 2018-04-18 08:10:07
我假设,您并不打算通过串行接口与目标Applet通信,而是希望“执行与接收此APDU时相同的功能”。
我有一些疑问,是否存在这样的接口,并且由于这些原因看不到用例:
https://stackoverflow.com/questions/49889334
复制相似问题