2014-11-08 65 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拒絕被選中,沒有小程序將隨後選擇。