即使存在 EF 文件,附加记录 APDU 也会得到 69、86 的错误响应

Append record APDU get an error response of 69, 86 even if there is an EF file that exists

APDU 更新记录给我一个 SW=1 69 SW2= 86 错误:不允许命令(没有当前 EF)

APDU: CLA = 0x00 , INS = 0xE2, P1 = 0x00 , p2 = 0x00 , len = length of data  , data 

我 select 在执行代码之前的 EF 文件,结果为: sw1=90 sw2=00 所以它存在。

我也尝试过 运行 创建 EF 文件,但它给我一个错误:

sw1 = 6A sw2=89 : File Already Exists.

我运行在更新记录之前也收到质询和外部验证,但问题仍然存在。

还有其他我必须考虑的事情吗?

错误 69 86 并不意味着该文件不存在,而是当前没有选择任何 EF,APPEND RECORD 可以对其进行操作。我最好的猜测是,在您的选择(证明 EF 的存在)和尝试附加到它之间发生了一些事情,这破坏了选择,例如。 G。选择包含身份验证密钥的 DF,或者如果您的智能卡 OS 以这种方式存储它们,则选择包含密钥的 EF。

唯一的建议:尝试直接在追加之前重新选择 EF,或者至少在正确的 DF 中使用 P2 指定短 EF 标识符。