问题标签 [globalplatform]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
322 浏览

smartcard - 编写一个小程序,列出卡上所有已安装的小程序和软件包

我想编写一个程序,返回 Java 卡上所有已安装或加载的小程序和包的 AID。换句话说,我想上传一个小程序,xx xx xx xx例如,当它收到 APDU Command= 时,它会返回那些 AID。(如果可能的话,最好也返回他们的权限和生命周期。)

例如,我在 JC222VMspecJC222JCREspecJC222APIspec中搜索了 LIST_APP 之类的方法!但我什么也没找到。我想知道有没有办法做到这一点?如果是这样,怎么做?实现一个方法还是有一个方法?

作为一个小问题,这三个规范有什么区别?我的意思是,当我想为 Java Card 编写一个小程序时,我必须阅读其中的哪一个?

0 投票
1 回答
81 浏览

smartcard - 在 javacard 上重新实现小程序安装程序或小程序删除管理器

我知道安装程序和删除管理器已经在 javacard 中实现。但我想知道是否有任何方法可以在新的小程序中再次实现它们?

我的意思是,有什么方法可以编写一个接收 AID 并删除它的小程序吗?

0 投票
1 回答
110 浏览

smartcard - JCRE 对上传带有混杂 AID 的小程序有何反应?

正如我们所知,applet 的 AID 长度必须在 5 到 16 个字节之间。如果小程序的长度混杂(大于 16 字节或小于 5 字节),转换器将不起作用。但这是 Off-Card 验证器。

我想看看 JCRE 对非标准 .cap 文件的反应是什么。换句话说,我想使用十六进制编辑器工具更改 .cap 文件的内容以更改 AID。

如您所见,AID 保存在 .cap 文件头中。但是标题在哪里?我不仅在 .cap 文件的内容中找不到 AID,而且具有相同 AID 的单个 .java 文件的两个转换文件是不同的!

我的意思是,如果您将 .java 文件转换为 .cap 文件两次,结果会有所不同!即使是平等的艾滋病!为什么?

下面,您会看到具有相同 AID 的单个程序的两个 .cap 文件的内容:

在此处输入图像描述

在此处输入图像描述

0 投票
2 回答
1132 浏览

smartcard - 为什么 Javacard 会阻止在单个 javacard 程序的 AID .cap 文件中上传不同的文件?

这是一个简单的 javacard 程序(它什么都不做!):

我将其转换为三个具有不同 AID 的.cap文件,如下所示:

  1. 文件 A:PkgAID= 0000000000& AppAID=000000000011
  2. 文件 B:PkgAID= 0000000000& AppAID=000000000022
  3. 文件 C: PkgAID= 000000000011& AppAID=00000000001111

如上所示,文件 A文件 B仅在AppAID中有所不同。并且File CPkgAID等于File AAppAID

现在我想将这些文件上传到我的NXP JCOP v2.4.2 r3智能卡上。首先,让我们看看内容:

好的,只有 SD。

步骤 1:安装文件 A

成功完成。

第 2 步:安装文件 B

安装失败。gp -list命令返回相同的先前结果。

第 3 步:安装文件 C

再次安装失败,gp -list命令返回相同的先前结果。

问题:

1-第一个错误的根源是什么?分两步上传两个.capAID 不同且 PkgAID 相同的文件是否违法?

2-第二个错误的根源是什么?它返回

卡上已存在 AID 000000000011 的包裹

但是没有!它是一个applet AID,而不是Package AID。

3-gp 是否阻止安装此小程序或错误的来源是 JCRE?


因为我认为它是限制我安装的GP工具,所以我也尝试了 JCManager。结果不一样!

首先,我删除了除 SD 之外的所有内容:

我使用JCManager重复相同的步骤:

第 1 步:安装文件 A

结果 :

如您所见,它像GP一样成功完成

第 2 步:安装文件 B

结果 :

这也就像GP的第 2 步一样。

但看看第 3 步:

第 3 步:安装文件 C

结果 :

你有没有看到?JCManager 删除了已安装的小程序,但无法上传文件 C!

在这种情况下,我尝试使用 GP 安装文件 C,但收到一个新错误,而不是重复的 PkgAID 或 ...:

任何人都可以阐明这个问题吗?

JCManager 在出现错误时返回的状态字的含义是什么?

再一次,我在一个帖子中问了多个问题,但我认为这些问题是相互关联的,我无法将它们分成三四个帖子!

0 投票
1 回答
848 浏览

smartcard - 具有委托管理权限的安全域和授权管理之间有什么区别?

我想知道具有授权管理权限的安全域和具有委派管理权限的安全域之间的区别。以及我们在两种状态下进行的操作(如加载、安装……)。我阅读了有关此主题的全球平台 2.2.1,但我理解含义和不同之处,我想知道我可以为哪个特权创建或创建安全域?以及如何找到我的卡支持哪些特权?

谢谢。

0 投票
1 回答
251 浏览

smartcard - 为什么我的智能卡接受两个不同的密钥作为其 MAC 密钥?

正如您在下面看到的,我尝试使用gp -list列出我卡上已安装的小程序。我指定了一些不同的键:

为什么它可以与两个不同的键一起正常工作?

404142434445464748494A4B4C4D4E4 F

404142434445464748494A4B4C4D4E4 E

请注意,我尝试了其他一些卡片和工具!相同的输出。

这是因为使用两个密钥的加密具有相同的输出吗?

0 投票
1 回答
632 浏览

javacard - 是否可以制作 CM 小程序的实例?

这是我卡片的内容:

据我所知,上面的输出意味着我的卡上有一个包(带有 AID= A0000001515350),并且在这个包中有一个小程序(带有 AID= A000000151535041)。而且我的卡上还有一个小程序实例,带有 AID= A000000151000000。这个小程序实例肯定是包的小程序实例(所有这些结论都对吗?)

现在,我想创建另一个小程序实例。所以我尝试了下面的代码:

为什么我会收到此错误?是否阻止创建 CardManager 小程序的实例?为什么?那么我怎样才能拥有多个安全域呢?(我的意思是SSD)

0 投票
1 回答
36 浏览

smartcard - 一个没有任何包的小程序,一个没有任何小程序的包

这是我的智能卡的内容:

Q1:为什么这个包AID: 6D797061636B616731没有小程序?我可以断定它是一个库包吗?

Q2:为什么实例小程序AID: A000000003000000没有任何包?!不应该是卡上的小程序,这是它的实例?

Q3:我可以创建这个 CM 的另一个实例吗?

0 投票
1 回答
551 浏览

javacard - Java 卡对 long AID 和 Short AID 小程序的奇怪响应

我创建了一个包含 22 个相等小程序的包。(小程序在程序中相等,在 AID 中不同。)

在此处输入图像描述

当我如下设置包 AID 和小程序的 AID 时,一切正常。(我可以安装它,我可以在gp -list命令的响应中看到它)

包裹 AID = 0102030405

看 :

现在,我改变我改变小程序的 AID 如下(其他一切都与以前相同):

包裹 AID = 0102030405

在这种情况下,我可以加载并安装它。但是我不能再列出我安装的小程序了!

为什么?!

更新 :

调试模式 - 简短的 AID:

调试模式 - 长辅助:

用另一张卡测试:

我将此包上传到另一张卡(另一种类型)上,但没关系!

正如您在上面看到的,我的包的小程序列表没有出现在输出中(我认为这是我卡的 SD 的一个功能),但我的输出没有任何错误。

我认为卡是错误的根源!不?

请注意,此问题仅在程序包包含超过20个小程序的情况下出现。

0 投票
2 回答
1485 浏览

javacard - 如何在 .cap 文件加载中进行 DAP 验证?

我想安装一个.cap文件。但我希望卡片管理员在上传我的文件时进行DAP验证。我该怎么办?它是默认检查 DAP 还是我必须在安装过程中使用一些参数?

我的智能卡是符合Global Platform 2.2.1的Java Card 3.0.1

并不是说我使用EclipseJCDK来开发小程序,而我使用gpJCManager来上传小程序。