使 2 个 cardlet Java 卡通信

Make 2 cardlet Java Card communicate

我有 2 个 cardlets Java 卡 在同一张智能卡 上,我想进行通信。

我可以 select 一个 applet 然后发送相应的 APDU 然后 deselect 它和 select 另一个等等......我想知道是否有可能做 更恰当 与逻辑渠道?我的意思是使用一种方法可以让我不 select/deselect 每个 APDU 命令的每个小程序?

提前谢谢你:)

您应该阅读有关以下内容的更多信息:Applet 防火墙、可共享对象和 Applet 间通信。这些是标准的 Javacard 功能(也是但不仅限于)为此目的而设计。

是的,这是可能的。

您需要一张支持额外逻辑的卡 channels.In 在这种情况下,您可以同时 select 多个小程序。(每个通道一个小程序)幸运的是,目前的卡支持一些额外的逻辑通道。

但是请记住,如果您希望同时 select(至少)单个包的两个小程序,则必须在两个小程序(以及所有其他小程序中)中实现 MultiSelectable 接口那个包裹)。

如果您的小程序不是来自单个包,则不需要实现此接口。

之后,您可以使用 MANAGE CHANNELS 命令和通道 0 中的 select App1 打开 2 个逻辑通道,并且App2 频道 1(例如)。对于下一个命令,您可以使用该 APDU 命令的 CLA 部分中的低半字节指定哪个通道(以及哪个小程序)是传入命令的目标。

请注意,SELECT APDU 命令是 MANAGE CHANNELS-Open 命令的替代命令。(所以你实际上不需要甚至不需要使用 MANAGE CHANNELS 命令)