据我所知,当 JCRE 接收 SELECT APDU命令时,首先,它会在其注册表中搜索<em> AID 该命令指示。如果它未在其注册表中找到AID ,则返回6A82
。但是如果 JCRE 找到它,它将调用所选applet的deselect()
方法,并在收到True
之后,它会调用所请求的select()
方法小程序。如果它从该方法收到True
,请将该小程序标记为已选中。
我的问题:
1-当 JCRE 调用其False
方法时,如果第一个小程序(当前选定的小程序)返回deselect()
会发生什么?小程序是否仍为Selected
?
2-如果第二个applet(请求的Applet)在 JCRE 调用其False
方法时返回select()
会发生什么情况?在这种情况下将选择哪一个applet ?默认为安全域?
答案 0 :(得分:3)
当JCRE调用false
方法时,第一个小程序(当前选定的小程序)返回deselect()
会发生什么?小程序是否仍处于选中状态?
不,一旦调用并返回Applet.deselect()
方法,将取消选择小程序。 applet无法阻止这种情况发生。 Applet.deselect()
没有返回值。即使在此方法中抛出异常仍然无法阻止取消选择小程序。
当JCRE调用false
方法时,如果第二个小程序(请求的Applet)返回select()
会发生什么?在这种情况下,将选择哪一个小程序?
由于之前的小程序已被取消选择且拒绝选择新小程序,因此将选择 no 小程序。