为什么一个包的所有小程序都没有安装?为什么我不能删除它们?

Why all applets of a package are not installed? And why I can't delete them?

这是我的 JavaCard 的内容:

GP::: gp -list
AID: A000000151000000 (|....Q...|)
     ISD OP_READY: Security Domain, Card lock, Card terminate, Default selected,
 CVM (PIN) management

AID: A0000001515350 (|....QSP|)
     ExM LOADED: (none)
     A000000151535041 (|....QSPA|)

Eclipse 中,我将 3 个小程序添加到一个包中,如下所示:

第一步:

我将此包转换为 .cap 文件,并使用 JCManager 将其成功安装到我的卡上。

当我使用 gp 列出小程序时,它 returns :

GP::: gp -list
AID: A000000151000000 (|....Q...|)
     ISD OP_READY: Security Domain, Card lock, Card terminate, Default selected,
 CVM (PIN) management

AID: 0102030405060708090002 (|...........|)
     App SELECTABLE: (none)

AID: A0000001515350 (|....QSP|)
     ExM LOADED: (none)
     A000000151535041 (|....QSPA|)

AID: 01020304050607080900 (|..........|)
     ExM LOADED: (none)
     0102030405060708090002 (|...........|)
     0102030405060708090001 (|...........|)
     0102030405060708090000 (|...........|)

第二步:

我想删除 App1 和 App2 :

GP::: gp -delete 0102030405060708090000
Could not delete AID (not present on card): 0102030405060708090000

GP::: gp -delete 0102030405060708090000 -deletedeps
Could not delete AID (not present on card): 0102030405060708090000

GP::: gp -delete 0102030405060708090001
Could not delete AID (not present on card): 0102030405060708090001

GP::: gp -delete 0102030405060708090001 -deletedeps
Could not delete AID (not present on card): 0102030405060708090001

但是对于 App3 我有不同的输出:

GP::: gp -delete 0102030405060708090002 -deletedeps
Could not delete AID: 0102030405060708090002
openkms.gp.GPException: Deletion failed SW: 6A88
        at openkms.gp.GlobalPlatform.check(GlobalPlatform.java:924)
        at openkms.gp.GlobalPlatform.deleteAID(GlobalPlatform.java:739)
        at openkms.gp.GPTool.main(GPTool.java:291)

请注意,我可以成功删除不带参数-deletedeps的App3:

GP::: gp -delete 0102030405060708090002   

GP::: 

而当我要删除包时,我必须添加 deletedeps :

GP::: gp -delete 01020304050607080900
Could not delete AID: 01020304050607080900
TIP: Maybe try with --deletedeps
openkms.gp.GPException: Deletion failed SW: 6985
        at openkms.gp.GlobalPlatform.check(GlobalPlatform.java:924)
        at openkms.gp.GlobalPlatform.deleteAID(GlobalPlatform.java:739)
        at openkms.gp.GPTool.main(GPTool.java:291)

GP::: gp -delete 01020304050607080900 -deletedeps

GP:::

第一步问题:

Q1:为什么输出中没有像APP3这样的小程序APP1和APP2的AID? (换句话说,为什么我在 Package 的子集中看到了 APP1 和 APP2 AID,但我可以将它们作为 Applet 安装在卡上?)它们是否已安装?

第二步问题:

Q2:为什么我无法删除App1和App2?

Q3:删除带参数-deletedeps的App3报错[6A88]是什么意思?为什么我会收到它?

Q4:什么时候必须使用deletedeps什么时候不需要?

您有一个小程序已安装:

AID: 0102030405060708090002 (|...........|) App SELECTABLE: (none)

并且您有一个包含 3 个小程序的程序包 已加载:

AID: 01020304050607080900 (|..........|) ExM LOADED: (none) 0102030405060708090002 (|...........|) 0102030405060708090001 (|...........|) 0102030405060708090000 (|...........|)

您只能删除一个现有小程序 0102030405060708090002 并且不能删除程序包 01020304050607080900,除非首先删除活动实例 0102030405060708090002 或使用 -deletedeps,这也会删除已安装的小程序。