我在同一张智能卡上有2张小卡片Java Card ,我想与之沟通。
我可以选择一个applet然后发送相应的APDU,然后取消选择它并选择另一个等等......我想知道是否可以这样做 更恰当 有逻辑渠道吗?我的意思是使用一种方法可以让我不为每个APDU命令选择/取消选择每个applet?
提前谢谢你:)
答案 0 :(得分:5)
是的,这是可能的。
您需要一张支持其他逻辑通道的卡。在这种情况下,您可以同时选择多个小程序。(每个通道一个小程序)幸运的是,当前的卡支持一些额外的逻辑通道。
但请记住,如果您想同时选择(至少)单个包的两个小程序,则必须在两个小程序中(以及该程序包的所有其他小程序中)实现MultiSelectable
接口。
如果您的小程序不是来自单个程序包,则不需要实现此接口。
之后,您可以使用 MANAGE CHANNELS 命令打开2个逻辑通道,并在通道0中选择 App1 ,在通道1中选择 App2 (例如)。对于下一个命令,使用该APDU命令的CLA
部分中的低半字节指定哪个通道(以及哪个applet)是传入命令的目标。
请注意, SELECT APDU 命令是 MANAGE CHANNELS-Open 命令的替代方法。(所以你实际上甚至不需要使用 MANAGE CHANNELS 命令)
答案 1 :(得分:2)
您应该阅读更多信息:Applet防火墙,可共享对象和小程序间通信。这些是(也是但不仅仅)为此目的而设计的标准Javacard功能。