1

私の知る限り、JCREがSELECT APDU コマンドを受信すると、まず、コマンドが示すAIDをレジストリ テーブルで検索します。レジストリ テーブルに AID が見つからない場合は、 が返されます6A82。しかし、JCREがそれを見つけた場合deselect()は、選択されたアプレットのメソッドを呼び出し、 を受け取った後、要求されたアプレットのメソッドをTrue呼び出しselect()ます。そのメソッドから を受け取った場合True、そのアプレットを選択済みとしてマークします。

私の質問:

1- JCREがそのメソッドを呼び出したFalseときに、最初のアプレット (Currently Selected Applet) が戻ってきたらどうなりますか? アプレットは残っていますか? deselect()Selected

2- JCREがそのメソッドを呼び出したFalseときに2 番目のアプレット (要求されたアプレット) が返された場合はどうなりますか?この場合、どのアプレットが選択されますか? デフォルトはセキュリティドメインですか?select()

4

1 に答える 1

3

falseJCRE がそのdeselect()メソッドを呼び出したときに、最初のアプレット (現在選択されているアプレット) が戻るとどうなりますか? アプレットは選択されたままですか?

いいえ、Applet.deselect()メソッドが呼び出されて返されると、アプレットは選択解除されます。アプレットがこれを防ぐ方法はありません。にはApplet.deselect()戻り値がありません。このメソッドで例外をスローしても、アプレットが選択解除されるのを防ぐことはできません。

falseJCRE がそのselect()メソッドを呼び出したときに、2 番目のアプレット (要求されたアプレット) が戻ってきたらどうなりますか? この場合、どのアプレットが選択されますか?

前のアプレットはすでに選択解除されており、新しいアプレットは選択を拒否されているため、アプレットは選択されません

于 2014-11-08T09:32:04.437 に答える