本机的DESFire APDU帧没有奏效 [英] Native DESFire APDU Framing not worked

查看:470
本文介绍了本机的DESFire APDU帧没有奏效的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用的是银河A5的Andr​​oid 5.0.2,SDK 21与Android 1.1.0工作室

I'm using Galaxy A5, Android 5.0.2, SDK 21 with Android Studio 1.1.0

Android作为PCD,和Mifare DESFire非人保。本机的DESFire APDU帧没有工作,但ISO 7816-4的工作。

Android as PCD, and Mifare DESFire as PICC. Native DESFire APDU Framing didn't work, but ISO 7816-4 worked.

例如:

MIFARE DESFire非SelectApplication与AID等于 000000 (PICC级)
结果
命令: 90 5A 00 00 03 00 00 00 00 结果。
期望的回应: 91 00 结果
目前,响应 68 00

MIFARE DESFire SelectApplication with AID equal to 000000h (PICC level)
Command: 90 5a 00 00 03 00 00 00 00.
Expected response: 91 00.
Currently the response is 68 00.

参考文件: AN11004.pdf(第33页)

void SelectApp() {
    _isoDep.connect();
    byte[] reqSelectApp = new byte[]{(byte) 0x90, (byte) 0x5A, (byte) 0x00, (byte) 0x00, (byte) 0x03, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00};
    byte[] resSelectApp = _isoDep.transceive(reqSelectApp);
    _responseTextView.append(String.format("reqSelectApp: %s length:%d\n", BytesToHexStr(reqSelectApp), reqSelectApp.length));
    _responseTextView.append(String.format("resSelectApp: %s length:%d\n", BytesToHexStr(resSelectApp), resSelectApp.length));
}

String BytesToHexStr(byte[] items) {
    StringBuilder builder = new StringBuilder();
    for (byte item : items) {
        builder.append(String.format("%02X", item));
    }
    return builder.toString();
}                        

TagInfo扫描(版本59年4月11日[β4011059])

信息


  • IC制造商:恩智浦半导体

  • IC类型:未知IC

NDEF


  • 无NFC数据集存储:

EXTRA

科技


  • 技术支持:

  • ISO / IEC 14443-4(A型)兼容

  • ISO / IEC 14443-3(A型)兼容

  • ISO / IEC 14443-2(A型)兼容

  • Technologies supported:
  • ISO/IEC 14443-4 (Type A) compatible
  • ISO/IEC 14443-3 (Type A) compatible
  • ISO/IEC 14443-2 (Type A) compatible

Android技术的信息:
标签说明:

Android technology information: Tag description:


  • android.nfc.tech.IsoDep


  • android.nfc.tech.NfcA

Android中没有MIFARE经典支持present

详细协议信息:


  • ID:04:62:26:82:8A:29:80

  • ATQA:0x4403

  • SAK:为0x20

  • ATS:0x1078B3C402654B5450304432654B545000

  • 最大。接受帧大小:256字节(FSCI:8)

  • 支持的接收速率:106,212,424 kbit / s的(DR:1,2,4)

  • 支持送话费:106,212,424 kbit / s的(DS:1,2,4)

  • 不同的发送和接收速率不支持

  • SFGT:4.833毫秒(SFGI:4)

  • FWT:1.237秒(FWI:12)

  • 不支持NAD

  • CID支持

  • 历史字节:0x654B5450304432654B5450 | eKTP0D2eKTP |

推荐答案

虽然ATQA / SAK看起来好像卡得的DESFire(这就是为什么我的NFC TagInfo应用程序检测到它本身,而是应该给你无论是读取错误或并表示DESFire非主应用的可用性),其余参数(特别是历史字节)清楚地表明,这是其他东西比一的DESFire卡。

While the ATQA/SAK looks as if the card was DESFire (that's why my NFC TagInfo app detects it as such, but should give you either a read error or does indicate availability of a DESFire master application), the remaining parameters (particularly the historical bytes) clearly indicate that this is something other than a DESFire card.

因此​​,不要指望卡响应命令的DESFire(本地或包裹本机)。这也因为它与响应符合卡片的行为68 00 (这表明CLA字节编码( 0×90 你的情况)不支持)。

Hence, don't expect the card to respond to DESFire commands (native or wrapped native). This also matches the behavior of the card as it responds with 68 00 (which indicates that the coding of the CLA byte (0x90 in your case) is not supported).

这篇关于本机的DESFire APDU帧没有奏效的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆