2014-11-08 52 views
0

据我所知,当JCRE接收选择 APDU命令,首先之后,搜索它的注册表中的AID的命令指示。如果在注册表中没有找到AID返回6A82。但如果JCRE找到它,它会调用所选小程序的deselect()方法,并在收到True后,它会调用select()方法请求的小程序。如果它从该方法收到True,则将该小程序标记为选中状态。JCRE行为接收SELECT APDU命令

我的问题:

1-会发生什么,如果第一小应用程序(目前被选的applet)返回FalseJCRE调用其deselect()方法?该小程序是否仍然为Selected

2 - 如果第二小应用程序(请求的小程序)返回,会发生什么FalseJCRE调用其select()方法?这小应用程序的人会选择在这种情况下?默认是安全域?

+0

我已经阅读过这个问题:http://stackoverflow.com/questions/25958082/so​​me-questions-about-select-apdu-command-in-javacards 但它并没有帮助我得到这个答案题。 – TheGoodUser 2014-11-08 06:21:02

回答

2

当JCRE调用其deselect()方法时,如果第一个小程序(当前选定的小程序)返回false,会发生什么情况?小程序是否保持选中状态?

不,一旦Applet.deselect()方法被调用并返回,applet将被取消选择。小程序无法防止这种情况发生。 Applet.deselect()没有返回值。即使在这种方法中抛出异常仍然不能阻止applet被取消选择。

当JCRE调用select()方法时,如果第二个applet(请求的Applet)返回false会发生什么?在这种情况下,哪一个applet将被选中?

正如前面的小程序已经被取消,新的applet拒绝被选中,没有小程序将随后选择。