【问题标题】:How to detect interface of incoming command?如何检测传入命令的接口?
【发布时间】:2016-01-05 18:32:59
【问题描述】:

我有一个包含我的小程序的双接口 Java 卡。我想对来自不同接口的单个​​命令有两个不同的 APDU 响应。

例如,我想在从接触式接口接收到命令时以“Contact”响应00 10 00 00 APDU 命令,当从非接触式接口接收到该命令时响应“ContactLess”。

那么,Java Card API 或 Global Platform API 中是否有任何方法可以检测传入命令的接口?

【问题讨论】:

    标签: javacard apdu globalplatform


    【解决方案1】:

    javacard.framework.APDU 类中有一个名为getProtocol() 的方法:

    public static byte getProtocol()

    返回 ISO 7816 传输协议类型,低半字节中的 T=1 或 T=0,高半字节中正在使用的传输媒体。

    接口编码在返回字节的高半字节中:

    final byte transportMedia = (byte) (APDU.getProtocol() & APDU.PROTOCOL_MEDIA_MASK); 
    final boolean isContactless = (transportMedia == APDU.PROTOCOL_MEDIA_CONTACTLESS_TYPE_A) || 
             (transportMedia == APDU.PROTOCOL_MEDIA_CONTACTLESS_TYPE_B);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-01
      • 1970-01-01
      • 2011-09-05
      • 2019-10-03
      • 1970-01-01
      • 2014-03-18
      相关资源
      最近更新 更多