首页 > 解决方案 > Java 卡 APDU 删除命令给出 '69' '85' 错误代码

问题描述

我在 java 卡中安装了一个 .cap 文件。我正在尝试通过 APDU 命令消息删除该 .cap 文件,但它给出的“69”“85”使用条件不满足。我为删除 .cap 文件所做的 PFB 步骤。

从java卡中删除小程序的步骤:

我完成了相互验证命令:

a) 初始化更新

b) 外部认证

并得到 '90' '00' 作为响应,这意味着我的身份验证已完成。

现在我正在尝试触发删除命令来删除 .cap 文件

删除命令

[CMD]80E40080074F050104070205

CLS : 80

INS : E4

P1:00

P2 : 80

LC : 07

资料:4F 05 0104070205

4F:应使用 AID 的标签('4F')指定要删除的应用程序或可执行加载文件

05 : AID 长度

援助:0104070205

得到响应为'69' '85' 不满足使用条件。

注意:-通过 jSDSCTool 直接发送 [CMD]80E40080074F050104070205 时,我也收到 69' '82' 安全状态不满意。

通过 jSDSCTool 删除包时,我得到 [Wrapped CMD]。

[换行CMD]84E400800F4F0501040702059412B4E480D17991

请在这里解释什么是 [Wrapped CMD] 以及 [Wrapped CMD] 84E4....9412B4E480D17991 的最后 8 个字节是什么

我用来创建命令消息的参考链接

标签: javasmartcardjavacardapduglobalplatform

解决方案


得到响应为'69' '85' 不满足使用条件。

在删除命令上获得状态字 6985 有多种原因。下面列出了常见的。

  1. 您尝试删除的包已被另一个小程序使用,因此 JCRE 首先不允许删除此包。
  2. 您要删除的小程序中包含一些静态数组的引用。删除时取消引用数组是必要的,否则无法删除。
  3. 它是一个系统包,无法删除。

请在这里解释什么是[Wrapped CMD]

此删除命令是使用安全消息包装器(CLA:84h)发送的,因此它附加了 MAC(最后 8 个字节)。因为这个 MAC 计算错误,所以你收到 6982。检查 K_MAC 是否有这个。

不需要安全消息传递命令来删除包/小程序。因此,请在您的小程序中检查上述 3 个条件。


推荐阅读