我有一个包含我的小程序的双接口(interface) Java 卡。我想对来自不同接口(interface)的单个命令有两个不同的 APDU 响应。
例如,当从接触界面接收到命令时,我想用“Contact”响应 00 10 00 00
APDU 命令,当从非接触界面接收到该命令时,我想响应“ContactLess” .
那么,Java Card API 或Global Platform API 中是否有任何方法来检测传入命令的接口(interface)?
最佳答案
javacard.framework.APDU
类中有一个名为getProtocol()
的方法:
public static byte getProtocol()
Returns the ISO 7816 transport protocol type, T=1 or T=0 in the low nibble and the transport media in the upper nibble in use.
接口(interface)在返回字节的高半字节中编码:
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);
关于javacard - 如何检测传入命令的接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34618848/