NXP NTAG 424:写入命令 returns 917E:"Length Error"”。为什么?

NXP NTAG 424: write command returns 917E: "Length Error"". Why?

我已经开始使用 NXP NTAG 424 TT 芯片以及 nfcpy 和 Identive SCL3711 Reader/Writer。我可以成功发送和接收 APDU 命令,安全地验证自己并在加密通信模式下发送和接收命令。

但是我无法读取或写入数据到芯片,我不知道为什么。这是我所做的(主要取自 NXP application 第 24 页的注释):

  1. 我发送命令"ISO Select NDEF application using DF Name" 00A404C07D276000085010100
  2. 然后我通过 AuthenticatEV2First 使用密钥 0x00
  3. 执行安全身份验证协议
  4. 我尝试写一些数据如下:
cmd_header = 02000000040000
cmd_data = 00D1FF00 (before padding)
cmd_data = 00D1FF00800000000000000000000000 (after padding)
The complete command which I send looks like this:
cla cmd P1&2| Lc |ISO Header      | encrypted Data                                 |LE
90 8D 00 00   1F  02 000000 040000 6688A4D75482FC972C2447A1A20F0AC9C073C1CF506B2BD3 00

但是芯片只响应 917E: "Length Error"" 转换为 "Command size not allowed" 我究竟做错了什么?它不可能是加密,我用各种其他命令(getTTStatus、SetConfiguration)测试了它,这些都运行良好。我四次检查了 header。我可能没有 select 正确的文件,还是我错过了其他一些步骤?另外 "Command size not allowed" 是什么意思?这个错误对我来说非常神秘(这在使用加密芯片时很有趣 :D)。

非常感谢任何帮助!

此致, 菲尔

你的情况下 "encrypted data" 字段的长度是 24 个字节,而你在 ISO Header 中提到的长度是“040000”,即 4 个字节。 您的加密数据长度应与您正在写入的数据长度相匹配。 在您的情况下,两个长度不匹配并导致错误。

希望信息清楚。 干杯!