如何检测传入命令的接口?
Posted
技术标签:
【中文标题】如何检测传入命令的接口?【英文标题】: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 中是否有任何方法可以检测传入命令的接口?
【问题讨论】:
【参考方案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);
【讨论】:
以上是关于如何检测传入命令的接口?的主要内容,如果未能解决你的问题,请参考以下文章