【问题标题】:JCRE Behavior after receiving an SELECT APDU command收到 SELECT APDU 命令后的 JCRE 行为
【发布时间】:2014-11-08 06:13:21
【问题描述】:

据我所知,当JCRE收到一个SELECT APDU命令时,首先会在其注册表中搜索AID该命令指示。如果在其 注册表 中未找到 AID,则返回 6A82。但是如果JCRE找到了,就会调用被选中小程序的deselect()方法,在收到True后,会调用被请求小程序的select()方法。如果它从该方法接收到True,则将该小程序标记为选中。

我的问题:

1- 如果 JCRE 调用其deselect() 方法时第一个小程序(当前选定的小程序)返回False 会发生什么?小程序是否保留Selected

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

【问题讨论】:

标签: smartcard javacard apdu globalplatform


【解决方案1】:

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

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

如果第二个小程序(请求的小程序)在 JCRE 调用其 select() 方法时返回 false,会发生什么情况?在这种情况下会选择哪一个小程序?

由于之前的小程序已经被取消选中,新的小程序拒绝被选中,没有小程序会被选中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多