Abr*_*ham 3 apdu javacard globalplatform
我有一个包含我的小程序的双接口 Java 卡。我想对来自不同接口的单个命令有两个不同的 APDU 响应。
例如,00 10 00 00当从接触式接口接收到命令时,我想用“Contact”响应APDU 命令,并在从非接触式接口接收到此命令时响应“ContactLess”。
那么,Java Card API 或Global Platform API 中是否有任何方法来检测传入命令的接口?
类中调用getProtocol()了一个方法javacard.framework.APDU:
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);
Run Code Online (Sandbox Code Playgroud)