通常,当您启动JavaCard智能卡并希望与applet通信时,必须首先使用其AID选择applet .
卡上电时是否有任何方法可以选择“默认小程序”?
我真正想做的是能够在选择卡后立即发送我的应用程序级APDU,而不需要完成应用程序选择过程 .
这可能吗?如果是这样,怎么样?
如果您的Java Card智能卡实现了Global Platform Card规范,它通常允许您定义在重置时在基本逻辑通道上隐式选择的applet . 因此,在加电(重置)卡时,默认情况下将选择小程序并立即接收所有命令(运行时环境处理的那些命令除外,例如选择其他小程序,逻辑信道管理等) .
您可以通过为小程序提供“默认选定”(GP 2.1.1术语)或“卡重置”(GP 2.2术语)权限,将小程序设置为默认选定小程序 . 这由(第一个)特权字节中的第3位设置 . 只有一个应用程序可以拥有此权限 .
例如,如果使用GlobalPlatformPro,则可以使用选项 --default (在安装期间)或 --make-default <AID> (对于现有小程序)来设置此权限 .
--default
--make-default <AID>
请注意,您可以通过捕获Applet#process method中的SELECT APDU来区分AID的默认选择和选择 . 最好的方法是调用Applet.selectingApplet来检查AID是否进行了显式选择 .
1 回答
如果您的Java Card智能卡实现了Global Platform Card规范,它通常允许您定义在重置时在基本逻辑通道上隐式选择的applet . 因此,在加电(重置)卡时,默认情况下将选择小程序并立即接收所有命令(运行时环境处理的那些命令除外,例如选择其他小程序,逻辑信道管理等) .
您可以通过为小程序提供“默认选定”(GP 2.1.1术语)或“卡重置”(GP 2.2术语)权限,将小程序设置为默认选定小程序 . 这由(第一个)特权字节中的第3位设置 . 只有一个应用程序可以拥有此权限 .
例如,如果使用GlobalPlatformPro,则可以使用选项
--default
(在安装期间)或--make-default <AID>
(对于现有小程序)来设置此权限 .请注意,您可以通过捕获Applet#process method中的SELECT APDU来区分AID的默认选择和选择 . 最好的方法是调用Applet.selectingApplet来检查AID是否进行了显式选择 .