NXP NTAG 424:写命令返回917E:“长度错误”。为什么?

问题描述 投票:0回答:1

我已经开始使用NXP NTAG 424 TT芯片以及nfcpy和一个相同的SCL3711读/写器。我可以成功发送和接收APDU命令,安全地验证自己的身份,并以加密的通信模式发送和接收命令。

但是我无法将数据读取或写入芯片,我也不知道为什么。这是我的工作(主要摘录自NXP application注意第24页):

  1. 我发送命令“使用DF名称的ISO选择NDEF应用程序”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响应:“长度错误”,翻译为“不允许的命令大小”我究竟做错了什么?它不能是加密,我用其他各种命令(getTTStatus,SetConfiguration)进行了测试,它们都工作正常。我检查了标题四倍。我是否可能无法选择正确的文件,还是错过了其他一些步骤?还有“不允许的命令大小”是什么意思?这个错误对我来说是一个很难理解的错误(使用加密芯片时很有趣:D)。

非常感谢您的帮助!

最好的问候,菲尔

我已经开始使用NXP NTAG 424 TT芯片,nfcpy和一个相同的SCL3711读/写器。我可以成功发送和接收APDU命令,对自己进行安全身份验证并发送...

nfc iso apdu
1个回答
0
投票

在这种情况下,“加密数据”字段的长度为24个字节,而在ISO标头中提到的长度为“ 040000”,即4个字节。您的加密数据长度应与您正在写入的数据长度相匹配。根据您的情况,两个长度都不匹配,从而导致错误。

© www.soinside.com 2019 - 2024. All rights reserved.