问题标签 [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 回答
330 浏览

applet - 在 JavaCard 上安装扩展小程序

如何将扩展的 Java-Card-applet 部署到我的卡上?到目前为止,我只处理经典小程序并在 OS X 下使用 GlobalPlatformPro 安装它们。

但是,当我尝试安装扩展小程序(使用gp -install KCIdentity.eap)时,它会失败并显示以下消息:

有谁知道我如何将我的小程序部署到我的卡上(最好使用 OS X,但 Debian 或 Windows 也可以)?

编辑:链接到 GlobalPlatformPro:https ://github.com/martinpaljak/GlobalPlatformPro

更新:这与扩展 APDU 无关,而是与 Java-VM 版本有关。经典小程序使用 2.x 版,而扩展小程序使用 3.y 版。NetBeans 将扩展的小程序打包在一个似乎不受支持的 *.eap 文件中......但是我会看看是否可以将它打包在一个 *.cap 文件中。改名没用。。。

0 投票
1 回答
167 浏览

smartcard - Finding a way to upload and install the CAP file to multi- pieces of smart cards

Due to the requirement of our project, I need to upload and install the same CAP file to multiple smart cards simultaneously (at least 12 at once).

Does this need a tool or something else (as I'm not going to spend too much money for this)?

I have tried to google, but found nothing.

Is there any simple method to do this? Or any suggestions?

0 投票
2 回答
5787 浏览

android - 使用 UICC 运营商特权证书签署应用程序

我正在阅读此链接上有关签署具有运营商特权的应用程序的信息。

我知道如何使用密钥库对应用程序进行签名以用于生产版本,但如何将 UICC 证书添加到我的应用程序以使其获得运营商权限?

我的主要目标是能够调用TelephonyManager函数,例如:

这是我在调用上述函数之一时得到的堆栈跟踪:

提前致谢!

0 投票
1 回答
2030 浏览

java - 在 J3A081 上安装小程序(Java Card)

我刚刚创建了一个非常简单的小程序。这是 Java 卡技术中的“hello world”。我在下面粘贴了一段代码。

之后,我决定使用 Global Platform 将其安装在真实卡(J3A081)上,但失败了。首先,我使用命令检查卡上是否已经安装了任何小程序:

回应是:

当我决定使用 *.cap 文件安装小程序时,我得到了:

你能告诉我我做错了什么吗?这张卡是全新的,以前从未使用过。我正在使用 NXP 的 ACR122U NFC 读卡器和卡 J3A081。

编辑

经过几个小时的尝试,我设法实现了一些目标。首先,我更新了 ACR122U 智能卡读卡器的驱动程序。此外,我熟悉了 GPSShell 并创建了一个简单的脚本:

哪个输出:

所以我想一切正常,但是当我想使用这个安装小程序时:

我有一个例外:

有人会遇到类似的错误吗?你知道这意味着什么吗?

编辑 2 我终于设法在我的卡上安装了小程序。我使用了修改过的 GlobalPlatformPro,正如 vlp 所写,有必要将加载块更改为 16 字节。

但我只能安装 hello world 小程序,在处理我的过程中,GlobalPlatformPro 返回异常:

0 投票
2 回答
234 浏览

java - Java Card - 安装小程序

我正在尝试在我的卡上安装一个小程序,但不知道如何安装。有没有人可以帮助我可能是一个教程左右。

我尝试JCManager安装并JSmartCardExplorer启动它,但它对我不起作用。

0 投票
1 回答
421 浏览

smartcard - GlobalPlatform 的安全架构:发行人能做什么?

我无法理解 GlobalPlatform Card 规范的高级安全架构,特别是发卡机构和发卡机构安全域的功能。

发卡机构能否真正访问已安装应用程序的私人数据,或者这是不可能的事情?

换句话说,拥有发卡机构密钥是否相当于在卡上拥有完整的系统权限,还是仅限于安装新的和删除已安装的应用程序、创建安全通道、禁用卡等?

0 投票
1 回答
1103 浏览

javacard - 更改 JavaCard 上的 GP-Key

我想阻止我的卡以进行进一步的开发。有谁知道如何用 GPSShell 做到这一点?我找到了这个命令:

但收到此错误:

我也试过:

但收到此错误:

0 投票
0 回答
571 浏览

javacard - 如何在 GP 兼容卡上启用 Visa2 密钥多样化?

我为客户开发了一个 Java Card 小程序,现在他希望我在他的卡上启用 Visa2 Key Diversification 算法。我从来没有参与过将小程序部署到卡片上,所以这对我来说是一个新概念。我偶尔用来将小程序下载到卡片的工具是gpj,这是我对客户卡片使用的命令行:

这会导致 gpj 使用全球平台默认密钥 ( 404142434445464748494A4B4C4D4E4F) 打开一个安全通道,其中包含卡上的安全域 (即A0 00 00 00 03 00 00 00)。

其中一张卡上已经安装了一个作为示例卡的小程序,当我尝试上述带有-list参数的命令时,我从gpj. 经过几次试验和错误,我能够使用以下命令对安全域进行身份验证:

因此,似乎可以在我的卡上打开和关闭 Visa2 密钥多样化。我的问题是,我怎样才能做到这一点?

0 投票
1 回答
505 浏览

smartcard - setATRHistBytes() 方法总是返回 false

我编写了以下程序,将智能卡 ATR 中的历史字节更改为,例如0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00. 我GPSystem.setATRHistBytes()用来设置历史字节。

请注意,这0x00 0x00 ... 0x00不是我用于历史字节的实际值,但我对其进行了审查。实际值是一个 15 字节的数组,等于另一张现有卡的历史字节数。

在将上述程序转换为它的 CAP 文件并安装具有Default Selected权限的小程序(需要使用GPSystem.setATRHistBytes())后,我仍然无法更改历史字节。

根据我收到的 APDU 响应,该setATRHistBytes()方法似乎总是返回false指示历史字节未更新。

请注意,这01 02 03 04 05 01是我的小程序 AID。

我的卡是 JCOP v2.4.2 R3,我尝试针对 GP 2.2.1 v1.6 和 GP 2.2 v1.4 API 进行编译。

0 投票
1 回答
368 浏览

javacard - 如何检测传入命令的接口?

我有一个包含我的小程序的双接口 Java 卡。我想对来自不同接口的单个​​命令有两个不同的 APDU 响应。

例如,当从接触式接口接收到命令时,我想00 10 00 00用“Contact”响应 APDU 命令,并在从非接触式接口接收到该命令时响应“ContactLess”。

那么,Java Card API 或Global Platform API 中是否有任何方法可以检测传入命令的接口?